带有 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章