0
A
回答
1
在进行单元测试时,您正在测试一个独立的方法:所有其他方法都应该正常工作,并且只测试您的方法以预期(指定...)方式运行。
但在很多情况下,预期的方式意味着调用依赖的类的方法(通过依赖注入,如果你想做单元测试)。
由于这些原因,您需要确保这些调用真的完成了...当然他们被调用期望的参数。
例子:
在您的实际应用,你有你的存储在数据库中的所有更改的存储库类(仅做此!)。但是对于单元测试你的“业务”类(你定义的所有业务规则),你应该嘲笑这个“仓库”类:然后你必须检查这个模拟类是否接收到正确的更新数据。
1
一般来说,这两个问题的答案都是一样的。
如果您正在测试的单元/方法的要求指定需要该行为,这很有用。如果这种行为是必需的,那么这就是您需要验证的事实。
如果确保只调用一次特定方法很重要,那么您可以这样做。如果一个方法不止一次被调用,那么不要明确地测试它。请注意,Mockito“verify”方法的默认值是“times(1)”,这意味着它确认该方法只被调用一次。
关于第二个问题,如果完全有可能用不同的参数调用该方法,则可能需要验证这些参数,并且您不想计算这些出现的次数,只关心一组特定的参数值。
相关问题
- 1. 嘲笑框架与功能测试,为什么要嘲笑?
- 2. 嘲笑单元测试类
- 3. 使用jQuery检查我嘲笑了一些HTML测试元素
- 4. 单元测试和嘲笑分号
- 5. 如何嘲笑为单元测试
- 6. 为什么SqlDataAdapter.Update只能调用一次?
- 7. 为什么只能调用SmtpClient.SendAsync一次?
- 8. 在Wordpress单元测试中嘲笑
- 9. 在单元测试中嘲笑服务
- 10. Toast.makeText只被调用一次
- 11. srand() - 为什么只调用它一次?
- 12. 单元测试嘲笑HttpContext的
- 13. 单元测试:调用@PostConstruct定义嘲笑行为
- 14. 嘲笑单元测试的HttpRequest.Form
- 15. 单元测试模拟不是嘲笑
- 16. Python嘲笑:如何测试递归函数的调用次数?
- 17. TouchesBegan只被调用一次
- 18. requestAnimationFrame只被调用一次
- 19. setNeedsDisplay只被调用一次
- 20. 在Java中嘲笑Db单元测试
- 21. viewWillAppear只被调用一次
- 22. 为什么查询被调用两次?
- 23. Java,单元测试嘲笑mxbean
- 24. 单元测试中嘲笑UnitOfWorkManager.Current
- 25. 嘲笑单元测试中的依赖有什么好处?
- 26. ABAP单元测试 - 为什么我的设置方法被调用两次?
- 27. 为什么构造函数只被调用一次?
- 28. 为什么run()只会被调用一次?
- 29. 函数被调用n + 1次而不是一次 - 为什么?
- 30. 犀牛嘲笑为什么我不能嘲笑一个物业?
你能否给我一个真实的用例检查参数? – Shookie 2014-09-06 08:25:53
我不打算构造一个具体的例子。然而,考虑到你正在嘲笑的类实质上就是你的CUT(正在测试的类)正在使用的API。您将对CUT有关于您需要调用的API方法的某些功能要求以及要发送的参数。如果有一种API方法对参数的不同变化执行不同的操作,并且功能需求指定需要特定的行为,那么验证参数值就是指定您已经从该API方法请求了特定的所需行为。 – 2014-09-08 16:40:38