我正在编写一个执行 Linq 查询的方法,并且我正在尝试使用 TDD 来做到这一点。
但是,我的查询现在有一个Any()
, 但有时我会在编写测试后删除或更改代码中的内容,以查看我的测试是否涵盖了应涵盖的所有内容。
然后我开始为了好玩而改变Any()
,All()
我的测试仍然通过。
我想知道我是否必须检查所有不同的情况,这样我才能得到所有All()
和Any()
组合:
- 鉴于我的列表包含零个元素(
All()
会返回true
,但Any()
会返回false
) - 鉴于我的列表包含一些元素并且只有一个满足谓词
- 鉴于我的列表包含一些元素并且所有元素都满足谓词
我在几本 TDD 书籍中读到人们经常“伪造”代码,结果测试失败。但在这种情况下,我必须编写比必要更多的代码来伪造它。