如何为使用mongodb进行数据持久化的Spring Boot Rest Controller编写Junit测试用例

时间:2019-03-29 13:36:30

标签: mongodb junit spring-boot-test

我正在尝试为我的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);

   }
}

0 个答案:

没有答案