假设我们有一个远程服务Alpha,其方法是GetUser(id,includePurchases).
该方法具有以下规则:
- 如果includePurchases为true,则user.Purchases应具有Purchases列表.
- 如果没有,user.Purchases应为空白.
假设我们有一个网站Beta,其UserRepository有一个方法GetUser(id,includePurchases).
Beta.UserRepository.GetUser()在内部调用Alpha.GetUser().
负责Alpha的团队表示Beta应该有一个检查特殊规则的测试.
我不同意,因为如果你有一个调用服务的单元测试,那就是集成测试.
他们不希望Beta测试调用Alpha,而是希望测试模拟Alpha.GetUser方法以包含类似"if(includePurchases)user.Purchases = new List()"的内容.
使用"if",将编写一个断言用户的测试.根据includePurchases标志,购买是否为空.
你能理解这个吗?
他们想要的测试应该不仅仅是Alpha单元测试的关注点吗?
对我而言,似乎我正在编写一个测试来检查Alpha工作方式的假设.
unit-testing ×1