Jon*_*han 11 tdd bdd integration-testing unit-testing
BDD被吹捧为"TDD做得对".
然而,TDD广泛用于单元测试,而不是端到端集成测试.
哪种测试最适合BDD?
k3b*_*k3b 13
哪种测试(集成测试,单元测试)最适合BDD?
我将在两个嵌套循环中使用它们,如使用SpecFlow和WatiN的行为驱动开发中所述
* writing a failing integration tests
* writing a failing unit test as part of the solution of the integration test
* making the unittest pass
* refactor
* writing the next failing unit test as part of the integration test
* unitl the integration test passes
* writing the next failing integration tests
Run Code Online (Sandbox Code Playgroud)
gmo*_*eck 10
您经常看到BDD周期中使用的接受/集成测试的原因是因为许多从业者非常重视模拟和外部开发.因此,他们倾向于包括端到端集成/验收测试以及单元测试,以确保系统的总体行为.
当假对象在单元测试中被用作协作者而不是真实对象时,很容易验证被测隔离单元是否以正确的方式运行(即它正确地修改了它的状态,并发送了正确的消息) .但是,除了隔离单个对象的行为与预期之外,它无法验证任何内容.因此,必须进行端到端验收测试,以验证系统中的所有对象在一起使用时向最终用户提供承诺的值.
所以基本上在这种方法中,单元测试和验收测试起到以下作用:
单元测试 - 隔离的对象以正确的方式运行
验收/集成测试 - 所有对象一起提供系统的承诺价值.
虽然我自己是这种发展方式的大力支持者,但它有点独立于一般的BDD思想.在我看来,只有当您通过使用模拟和存根在单元测试中隔离被测系统时,才需要接受/集成测试.