我有一个使用REST API的Spring Boot应用程序。有三层,分别是@Controller、@Service和@Repositiry。我需要为每一层编写单元测试用例,并对包括数据库在内的所有层进行集成测试。单元测试用例使用@MockBean编写。它们应该使用模拟对象运行。集成测试用例应该使用实际对象运行。但是两个用例都使用了模拟对象,所以集成测试失败。我如何使用模拟对象进行单元测试和使用实际对象进行集成测试。
hkmswyz61#
您需要分开2个测试,这2个测试类型不一致。
单元测试mock object -> testClass -> assert所以你只需要考虑这个方法做什么,然后模拟其他依赖于你测试的方法的方法。集成测试Real object -> whole process -> real result这就像是服务的单个工作流的完整循环。不需要检查任何值,只需要关注保存到数据库中的数据的响应。
mock object -> testClass -> assert
Real object -> whole process -> real result
1条答案
按热度按时间hkmswyz61#
您需要分开2个测试,这2个测试类型不一致。
单元测试
mock object -> testClass -> assert
所以你只需要考虑这个方法做什么,然后模拟其他依赖于你测试的方法的方法。集成测试
Real object -> whole process -> real result
这就像是服务的单个工作流的完整循环。不需要检查任何值,只需要关注保存到数据库中的数据的响应。