Mockito用虚方法

Mockito with void method

本问题已经有最佳答案,请猛点这里访问。

我想测试返回空白的方法。我应该纠正什么?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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);

    }

您应该在测试方法中直接或间接通过您的clientService与您的模拟进行交互。你的评论中有例外,因为在测试期间没有打电话给saveClient

之后,您可以验证是否使用特定参数调用方法。它应该像下面这样:

1
2
3
4
5
6
@Test
public void saveClient() {
   // Any interaction with the mock, like:
   clientDaoMock.saveClient(aClient)
   verify(clientDaoMock, times(1)).saveClient(any(Client.class));
}