Qual é a diferença entre a criação de um aplicativo Outside In vs a criação de Inside Out usando TDD?
Estes são os livros que li sobre TDD e testes de unidade:
Desenvolvimento Orientado a Testes: Por exemplo
Desenvolvimento Orientado a Testes: Um Guia Prático: Um Guia Prático
Soluções do Mundo Real para o Desenvolvimento de Frameworks PHP de Alta Qualidade e
Desenvolvimento Orientado a Testes de Aplicativos na Microsoft.
Padrões de teste do NET xUnit: Refatorando o código de teste
A arte do teste de unidade: com exemplos no .Net
crescente software orientado a objetos, guiado por testes ---> Este foi realmente difícil de entender, pois JAVA não é meu idioma principal :)
Quase todos eles explicaram os conceitos básicos do TDD e os testes de unidade em geral, mas com pouca menção às diferentes maneiras pelas quais a aplicação pode ser construída.
Outra coisa que notei é que a maioria desses livros (se não todos) ignora a fase de design ao escrever o aplicativo. Eles se concentram mais em escrever os casos de teste rapidamente e deixar o design emergir por si só.
No entanto, deparei-me com um parágrafo no xUnit Test Patterns que discutia as maneiras pelas quais as pessoas abordam o TDD. Existem 2 escolas lá fora, Outside In vs Inside Out .
Infelizmente, o livro não detalha mais esse ponto. Desejo saber qual é a principal diferença entre esses dois casos.
Quando devo usar cada um deles?
Para um iniciante no TDD, qual é mais fácil de entender?
Quais são as desvantagens de cada método?
Existe algum material por aí que discuta esse tópico especificamente?