带有 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 方法抛出异常

如何使用 Mockito 对 void 方法的行为进行编程? [复制]

Spring Boot Test Mockito Mock Void Return,无返回值的方法

如何在void方法中获取对象值SUT Mockito

如何断言使用 mockito 调用方法