java – 在JUnit测试中模拟对象 – 最佳实践?

前端之家收集整理的这篇文章主要介绍了java – 在JUnit测试中模拟对象 – 最佳实践?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你认为JUnit测试中的嘲笑对象是最好的做法吗?我看不到很大的优势.当然,如果你有一个数据库不应该在你的测试中被考虑是有意义的,但是为什么不注入该组件的其他实现(如果使用 spring).一个对象工厂的测试将使这很容易.我没有太多经验(我们正在使用Mockito),但是我已经看到,该应用程序代码修改,以使一些属性变得可耻!测试用例不应该在我的反对中消除生产代码的这种变化.

那你觉得这个话题怎么样?在这种情况下,您是在嘲笑您的对象还是为什么不这样做?

解决方法

嘲笑的想法是,你完全隔离你正在测试的东西.然后,当测试失败时,您可以确定问题所在,而无需遍历整个类依赖关系树.如果您一起测试多个类的行为,那么这不是真正的单元测试.

用于测试的对象工厂可能假定使用stubbed方法制作对象,而mocking框架本质上是用于测试的通用对象工厂.但是,嘲讽提供了比存根更多的东西 – Martin Fowler在这里详细介绍的一个区别:http://martinfowler.com/articles/mocksArentStubs.html.

如果你觉得嘲讽很难,而且你也发现你在做很多事情,那么这是TDD的典型例子,告诉你你的设计可以改进.

猜你在找的Java相关文章