我有一个使用Spring依赖注入的Java应用程序。我想模拟一个bean,并验证它是否接收某些方法调用。
问题是Mockito不会在测试之间重置mock,因此我无法正确验证对它的方法调用。
我的测试单元:
public class MyClass {
@Resource
SomeClientClass client;
public void myMethod() {
client.someMethod();
}
}
单元测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = UnitTestConfig.class)
public class MyClassTest {
@Resource
SomeClientClass client;
@Test
public void verifySomething() {
// ...
Mockito.verify(client).publish();
}
}
最后,
@Configuration
public class UnitTestConfig {
@Bean
SomeClientClass client() {
return Mockito.mock(SomeClientClass.class);
}
}
虽然我可以通过在测试之间手动重置模拟来解决这个问题,但我想知道是否有更干净/更习惯的方法。
我必须在开始时添加以下内容:
@BeforeEach
void setup() {
Mockito.reset(...mockBeans);
...
}
我正在尝试试驾我正在对我的Android服务进行的一系列更改()-我正在使用Dagger和Robolectric,我需要用一些模拟来替换服务中的字段注入类,以缩小测试范围…使它(稍微)更像“单元”。 我在我的中插入
我正在使用mocks来模拟那些需要几个小时才能建立起来的对象,因为我的团队似乎很喜欢极深的聚合对象。 谢谢!
我知道这个问题被问了很多次,但我听了很多答案,还是没有用 我的代码出了什么问题?我错过什么了吗?
为了获得可重用和可测试的rxjava代码,我使用ObservableTransformers分离了代码的各个部分。它在生产中工作得很好,但是测试它并不像预期的那么容易,因为我似乎无法模拟那些观察到的ransformers。 when(observableTransformer.apply(any())).thenreturn(observable.just(“mockedtext”)); 一旦调用
我还没有看到这个问题的答案能解决我的问题。 我有一个服务类,它是用一个存储库和一个Orika MapperFacade构建的。在测试中,我正在安排存储库调用返回的实体列表。my doReturn(testList).when(testRepository).findAllBy...似乎正在工作。我的实际结果列表包含我在模拟列表中指定的相同数量的元素(.size()),但是这些值都是空的。我对Spr
我放了一个简单的重试,因为操作很少会失败。下面是简化的代码。方法< code>putObject可能会意外引发异常,在这种情况下,重试应该允许再次调用此方法。有可能为此编写一个JUnit测试吗?我知道使用Mockito library我们可以强制抛出一个调用方法的异常,但是如何强制这个异常只抛出一次呢? 测试类: