Mockito - 如何单元测试参数是否在另一个函数调用的函数中设置

吉德留斯

我有两节课。

  • 服务类
  • 存储库.class

我的服务正在调用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

的Mockito:如何测试一个构造函数被调用?

如何使用Mockito在单元测试中调用AppCompatActivity onCreate

当一个函数使用另一个函数的返回数据时如何使用 mockito?

在Mockito中的单元测试中如何在函数中传递任何UUID?

Mockito-验证一个方法是否在同一类中调用另一个方法

使用 Mockito 进行 Java 单元测试。函数内的函数调用

如何使用 Mockito 验证在测试期间调用了 SUT 的另一个公共方法

使用Mockito对构造函数进行单元测试

如何使用`when/then` mockito调用具有相同参数的另一个方法

Mockito单元测试RestTemplate

Mockito,验证一个函数被调用0次

如何使用 Mockito 通过单元测试?

如何验证Mockito是否满足许多条件?是否可以验证是否调用了一个或另一个方法?

Mockito:如何模拟另一个方法内部调用的方法

从方法:: org.mockito.exceptions.misusing.MissingMethodInvocationException中调用另一个方法

Mockito-在目标类方法中验证另一个对象的方法调用

如何对一个调用另一个返回承诺的函数进行单元测试?

如何在Mockito的单元测试中模拟LocalCache

如何对Mockito中的Builder类的方法参数进行单元测试?

如何让Mockito模拟另一个文件中的常量?

使用Mockito进行单元测试改造API调用-ArgumentCaptor

在单元测试期间调用 Mockito 间谍方法

AngularJS-如何测试是否从另一个函数中调用一个函数?

使用Mockito在另一个EJB中模拟一个EJB

JUnit Mockito在另一个类中模拟一个方法错误

条件查询Mockito单元测试-NullPointerException

使用Mockito进行Runnable的单元测试

Mockito单元测试-时间戳不同

单元测试 MapReduce - Junit Mockito