我正在尝试为我的spring boot控制器编写junit测试用例。
我有两个API getUser和AddUser,这些API通过dao与mongotemplate进行通信,以将数据放入mongo DB中并从mongo DB中获取数据。
我有MongoConfiguration类(它具有服务器地址,端口密码等)是通过属性文件@Value配置的,该属性文件是通过 @PropertySource
配置的 将创建mongo模板,其中的详细信息来自 @Autowired mongoconfig类。
在编写junit测试用例并进行测试时,它使用的是通过标准属性文件为所有开发人员配置的实际mongoDB,因此对于我的测试,我想使用某种嵌入式mongo来模拟mongo db模板
所以如何避免在junit测试用例中使用我的实际mongodb
这是我下面的代码,可用于实际的数据库
public class UserControllerTest extends AbstractTest {
@Override
@Before
public void setUp() {
super.setUp();
}
@Test
public void createProduct() throws Exception {
User user = new User();
user.setName("UnitTest");
String inputJson = super.mapToJson(user);
String uri = "/iot/user/createuser";
MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(uri)
.contentType(MediaType.APPLICATION_JSON_VALUE)
.content(inputJson)).andReturn();
int status = mvcResult.getResponse().getStatus();
assertEquals(201, status);
}
}