【问题标题】:How can I write a simple JUnit test to test a REST Controller如何编写简单的 JUnit 测试来测试 REST 控制器
【发布时间】:2020-04-27 15:26:01
【问题描述】:

我想测试 methodForTest 方法。

我想使用 JUnit 进行测试,而不是集成测试。

我的休息控制器:

@RestController
@RequestMapping("/hi")
@Api(value = "Servise")
public class MyController {
@PostMapping(value = "/hi/save")
    @ApiOperation(value = "inquiry")
    @ApiResponses(value = {
            @ApiResponse(code = 500, message = "fail"),
            @ApiResponse(code = 501, message = "ok"),
    })
    public void methodForTest(@RequestBody String res) {
        MyService.save(dto.getPhoneNumber(res));
    }
}

我的 JUnit 测试类:

@ExtendWith(MockitoExtension.class)
@RunWith(SpringRunner.class)
@SpringBootTest
class MyControllerTest {

    @InjectMocks
    MyController myController ;

    @Mock
    MyServiceImpl myServiceImpl;

    @Test
    void sendSmsCode() {
        Mockito.verify(...)
    }

对我来说最好的测试方法是什么?

感谢任何建议或帮助。谢谢!

【问题讨论】:

  • 你可以使用 Mockito.verify() 来验证 MyService.save(...) 方法是否被调用

标签: java rest junit controller


【解决方案1】:

Mockito.verify(myController,times(2)).methodForTest(ArgumentMatchers.any()); //万一它被调用了2次

【讨论】:

    猜你喜欢
    • 2015-01-16
    • 2016-12-04
    • 2016-03-10
    • 1970-01-01
    • 2021-08-06
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多