>我有以下配置
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootApplication(scanBasePackageClasses= {})
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes= {})
@ActiveProfiles("local")
我想在不模拟MongoRepository调用的情况下运行JUnit测试,但它会自动模拟MongoRepo调用并返回null。他们的解决方法吗?
首先,您应该决定要执行哪种测试,
- 单元测试
或 - 集成测试
如果你正在做单元测试,你应该为每个层编写单独的测试用例
控制器层 - 使用 mockmvc 和模拟服务层调用
服务层 - 这里你有两个选择,你可以模拟存储库调用,或者你可以在内存数据库中使用一些(如Fongo(并在测试之前放置一些数据并测试它。
如果你想一起测试所有层并使用真实的数据库,那么你应该编写集成测试。