作为
this answer评论中的讨论的跟随者,TDD测试是否应该首先失败?
请考虑以下示例.如果我正在编写LinkedHashSet的实现和一个测试测试,在插入副本之后,原始版本与插入之前的迭代顺序相同,我可能想要添加一个单独的测试,副本根本不在集合中.
第一次测试将首先失败,然后实施.
问题是,使第一次测试通过的实现很可能使用不同的集合实现来存储数据,因此正如第二次测试已经通过的副作用一样.
我认为看到测试失败的主要目的是确保测试是一个很好的测试(很多次我写了一个测试,我认为会失败,但没有,因为测试写错了).但是,如果您确信您所编写的测试确实测试了某些内容,那么必须确保您以后不会破坏该行为并不值得吗?