我应该练习“模仿者”还是“古典”TDD?

我读过(并重新阅读)Martin Fowler的 Mocks Aren’t Stubs.在其中,他定义了 two different approaches to TDD: “Classical” and “Mockist”.他试图回答问题“ So should I be a classicist or a mockist?”,但他承认,他从来没有尝试过模仿TDD而不是玩具。所以我想我会在这里问问题。好的答案可能会重复福勒的论点(但希望更清楚),或者增加他没有想到的论点,或者自从Fowler在2007年1月更新文章以来,其他人提出了论点。
我不认为你需要选择一个在另一个。两者都有其优点和缺点,两者都是您的工具箱的工具。
“Mockist”tdd使你在测试中更加灵活,而传统的TDD使你的测试不那么脆弱,因为他们倾向于更多地看输入/ vs输出,而不是看实际的实现。当做模仿单元测试时,我似乎有更多的测试在改变实现时中断。

我尽量使用经典的tdd(尽管我经常使用模拟框架来快速设置存根)。有时我注意到我一次开始测试太多或者我需要太多的对象来设置测试。这是当模拟测试通常可以帮助你设置较小的测试。

这是很抽象的,所以我希望我有意义

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...