带有 void 方法的 Mockito [重复]
Posted
技术标签:
【中文标题】带有 void 方法的 Mockito [重复]【英文标题】:Mockito with void method [duplicate] 【发布时间】:2018-12-04 21:44:46 【问题描述】:我想测试返回 void 的方法。 我应该纠正什么?
public class ServicesTest
@Mock
ClientDao clientDaoMock;
@InjectMocks
@Autowired
ClientService clientService;
@Before
public void setUp() throws Exception
MockitoAnnotations.initMocks(this);
//FixMe
@Test
public void saveClient()
when(clientDaoMock.saveClient(any(Client.class))).thenReturn(true);
【问题讨论】:
【参考方案1】:您应该在测试方法中直接或间接通过您的clientService
与您的模拟进行交互。您在评论中遇到了异常,因为在测试期间没有调用 saveClient
。
之后,您可以验证是否使用特定参数调用方法。它应该如下所示:
@Test
public void saveClient()
// Any interaction with the mock, like:
clientDaoMock.saveClient(aClient)
verify(clientDaoMock, times(1)).saveClient(any(Client.class));
【讨论】:
以上是关于带有 void 方法的 Mockito [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 mockito [Spring-Boot] [重复] 测试 void 函数 try/catch 块
如何使用 Mockito 对 void 方法的行为进行编程? [复制]