我有两节课。
我的服务正在调用cleanup()
函数,然后从存储库调用函数repository.insertSomething(something)
我需要测试 insertSomethingcleanup()
是否在调用后设置了它的属性。
我已经像这样开始了我的测试代码
Service mock = mock(Service.class);
ArgumentCaptor<Repository> argument = ArgumentCaptor.forClass(Repository.class);
verify(mock).cleanup(); <-- have no access to the arguments of the child function and can't use the captor.
如示例中所示,我无法访问在清理函数范围内调用的函数。
我如何访问测试由另一个函数调用的函数的参数。
附注。
我无法直接调用存储库函数,因为它从配置文件加载其参数。并且测试应该在cleanup
函数被调用的情况下执行。
// Child method
@Query("insert into .... where ?1 < ....")
void insertSomething(LocalDate date);
您有一些要测试的服务。有一些内部依赖项,您想检查它们的调用。对于典型服务的单元测试,您通常应该模拟所有内部依赖项及其行为,如下所示:
class ServiceTest {
@Mock
private Repository repository;
@InjectMocks
private Service service;
@BeforeEach
void setUp(){
initMocks(this);
}
@Test
void serviseTest(){
SomeReturnType retVal = mock(SomeReturnType.class);
when(repository.call(any())).thenReturn(retVal);
service.call(any);
verify(repository).call(any());
verifyNoMoreInteractions(repository);
}
}
此泛型代码可以作为您的问题解决方案的示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句