使用Linq Any()和All()的TDD

Pac*_*ane 2 .net c# linq tdd

我正在编写一个执行Linq查询的方法,我正在尝试使用TDD.

但是,我的查询现在有了Any(),但有时我会在编写测试后删除或更改代码中的内容,以查看我的测试是否涵盖了应该涵盖的所有内容.

然后,我开始改变Any()了All()只是为了好玩,和我的测试仍然通过.

我想知道我是否必须检查所有不同的情况,所以我得到所有All()和Any()组合:

  1. 鉴于我的列表包含零元素(All()将返回true,但Any()会返回false)
  2. 鉴于我的列表包含一些元素,只有一个满足谓词
  3. 鉴于我的列表包含一些元素,并且所有元素都满足谓词

我在TDD的几本书中读过,人们经常"伪造"代码,只是测试失败了.但在这种情况下,我必须编写比伪造它更多的代码.

jas*_*son 7

解决方案很简单:您显然没有足够的测试来涵盖所有可能性.如果不了解您的域名,或者您正在测试的内容,您可能需要进行测试

  • 空
  • 不空虚,都满足
  • 不空,有些满足
  • 不空,没有人满足