所以说我正在做TDD并且我写了这样的测试:
public void testDeposit()
{
Bank b = new Bank();
b.deposit(100);
AssertEquals(100, b.balance);
}
然后我去测试通过,继续下一个。假设我连续几次执行此操作并获得存款,取款和摊销全部工作。
然后说我想写一个测试,测试某人创建一个帐户并做一切的组合。这在技术上不是集成测试,而不是单元测试吗?如果是,它是否适合TDD,或者TDD应该只包含单元测试。
主要是我问,因为如果这个测试中断,很可能其中一个测试应该中断,如果他们没有,我可能只是没有用适当数量的场景测试它们。那么当谈到TDD时,我应该在与单元测试相同的域中进行集成测试,还是应该将它们写在其他地方的另一个类/文件中并单独运行?
答案 0 :(得分:4)
我认为高级测试当然可以作为TDD工作流程的一部分。例如,测试“Outside in”可以是定义新功能的一种非常有效的方法。首先对新功能进行一些UI级别验收测试,为需要存在的组件编写集成测试以提供该功能,并编写单元测试以驱动每个组件的实现。
我认为您应该明确区分您的测试类型,而不是将它们混合在一起,但将所有这些作为TDD过程的一部分包含在内是有意义的。
答案 1 :(得分:2)
集成测试和单元测试之间的界限可能有点模糊;在进行TDD时,测试“向上”到集成级别是值得的,只是为了获得功能的确认,但在TDD期间实施“全面”集成测试肯定是过度的(注意那里综合报价)。
基本上,“判断呼叫”的一个重要方面正在发生;对于在TDD模式下停止添加测试的适当级别,您的经验应该是一个很好的指导。