Estou tentando entender o BDD. Eu li alguns artigos e, como eu entendi, o BDD é "o próximo passo" do TDD. Digo isso porque acho que ambos são muito semelhantes e, como pude ler neste artigo , o BDD nasceu como uma melhoria do TDD. Ótimo, eu realmente gosto da ideia.
Há um ponto prático que não entendi, pensou: há um arquivo .feature no qual o BA gravará todo o comportamento esperado no qual o sistema teria. Como bacharel, ele não tem idéia de como o sistema é construído, então escreveremos algo assim:
Cenário 1: a conta está sendo creditada
Dado que a conta está em crédito
E o cartão é válido
E o distribuidor contém dinheiro
Quando o cliente solicita dinheiro
Então garanta que a conta seja debitada E garanta que o dinheiro seja dispensado
E garanta que o cartão seja devolvido
Ok, isso é ótimo, mas há muitas partes do sistema que colaborarão para que isso aconteça (pense em Obj da conta, Obj do dispensador, Obj do cliente e assim por diante). Para mim, isso parece um teste de integração.
Eu gostaria de fazer testes de unidade. Como faço para testar o código que verifica se o distribuidor tem dinheiro? Ou que o dinheiro é dispensado? Ou que a conta é debitada quando necessário? Como posso misturar testes de unidade com testes "BA Created"?