Paz*_*Paz 4 java unit-testing mocking mockito
我想测试 MyClass,我的意思是测试公共函数 myFunction。此函数从 MyService 调用 someMethod。我想检查它是否传递了在此类中创建的有效参数 str1 和 str2。我正在考虑捕获那些,但我不确定是否可以捕获 2 个参数,或者如何做到。如果可能,我不想改变可见性
class MyService
{
public void someMethod(String str1, String str2);
}
class MyClass
{
private MyService myService;
private String createStrOne(){...};
private String createStrTwo(){...};
....
public void myFunction()
{
myService = new MyService();
myService.someMethod(createStrOne(),createStrTwo());
}
}
Run Code Online (Sandbox Code Playgroud)
你只需要两个参数捕获器
@Mock
private Service service;
@Captor
private ArgumentCaptor<String> strOneCaptor;
@Captor
private ArgumentCaptor<String> strTwoCaptor;
Run Code Online (Sandbox Code Playgroud)
在测试中:
Mockito.verify(service).someMethod(strOneCaptor.capture(), strTwoCaptor.capture());
assertEquals(strOneCaptor.getValue(), expectedStrOne);
assertEquals(strTwoCaptor.getValue(), expectedStrTwo);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3337 次 |
| 最近记录: |