Tag: unit testing模拟

Mockito:嘲弄“Blackbox”依赖

所以我被要求为我们的开发团队阅读模拟和BDD,并玩嘲笑,以便改进我们现有的一些unit testing(作为实验)。 我最终选择与Mockito一起出于多种原因(有些原因超出我的控制范围),但是因为它支持对模拟不适合的实例进行存根和模拟。 我整天都在学习Mockito,嘲笑(一般)和BDD。 现在我准备深入挖掘并开始增强我们的unit testing。 所以我们有一个名为WebAdaptor的类,它有一个run()方法: public class WebAdaptor { private Subscriber subscriber; public void run() { subscriber = new Subscriber(); subscriber.init(); } } 请注意:我没有办法修改此代码(出于此问题范围之外的原因!)。 因此,我无法为Subscriber添加setter方法,因此可以将其视为WebAdaptor内部无法访问的“黑WebAdaptor 。 我想编写一个包含Mockito模拟的unit testing,并使用该模拟来verify执行WebAdaptor::run()会导致调用Subscriber::init() 。 所以这就是我到目前为止(在WebAdaptorUnitTest ): @Test public void runShouldInvokeSubscriberInit() { // Given Subscriber mockSubscriber = mock(Subscriber.class); WebAdaptor adaptor = new WebAdaptor(); // When adaptor.run(); // Then verify(mockSubscriber).init(); […]

如何在Mockito中更改字符串的默认返回值?

2010年的这个问题暗示了我正在努力做的事情。 我正在进行unit testing,该测试运行代码,需要许多模拟对象来完成它需要做的事情(测试HTML + PDF渲染)。 为了使这个测试成功,我需要生成许多模拟对象,并且每个对象最终都会将一些String数据返回给被测试的代码。 我想我可以通过实现我自己的Answer类或IMockitoConfiguration来实现这IMockitoConfiguration ,但我不确定如何实现它们,因此它们只会影响返回字符串的方法。 我觉得以下代码接近我想要的。 它抛出一个强制转换exception, java.lang.ClassCastException: java.lang.String cannot be cast to com.mypackage.ISOCountry 。 我认为这意味着我需要以某种方式默认或限制Answer仅影响String的默认值。 private Address createAddress(){ Address address = mock(Address.class, new StringAnswer() ); /* I want to replace repetitive calls like this, with a default string. I just need these getters to return a String, not a specific string. […]