当前位置: 首页 > 知识库问答 >
问题:

未在DB中插入数据的CrudRepository测试用例

从烈
2023-03-14
    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
    public class XYZControllerTest {

        MockMvc mockMvc;

        @Mock
        private XYZController xyzController;

        @Autowired
        private TestRestTemplate template;

        @Autowired
        XYZRepository xyzRepository;

        @Before
        public void setup() throws Exception {
            mockMvc = MockMvcBuilders.standaloneSetup(xyzController).build();
        }

        @Test
        public void testPanelShouldBeRegistered() throws Exception {
            HttpEntity<Object> xyz = getHttpEntity("{\"name\": \"test 1\", \"email\": \"test10000000000001@gmail.com\","
                    + " \"registrationNumber\": \"41DCT\",\"registrationDate\":\"2018-08-08T12:12:12\" }");
            ResponseEntity<XYZ> response = template.postForEntity("/api/xyz", xyz, XYZ.class);

    }
}

我的问题是,当我运行测试用例时,数据要插入到应用程序使用的数据库中。我可以不在DB中插入数据来测试它吗。

共有1个答案

班浩皛
2023-03-14

从概念上讲,当我们测试服务时,我们模拟存储库,而不是注入。

您需要模拟存储库和设置返回数据的行为。

一个例子:

@MockBean
XYZRepository xyzRepository;

@Test
public void test() {

    // other mocks
    //
    when(xyzRepository.findAll()).thenReturn(Arrays.asList(new XYZ()));

    // service calls
    // assertions
}
 类似资料:
  • 本文向大家介绍c# 插入数据效率测试(mongodb),包括了c# 插入数据效率测试(mongodb)的使用技巧和注意事项,需要的朋友参考一下 mongodb的数据插入速度是其一个亮点,同样的10000条数据,插入的速度要比Mysql和sqlserver都要快,当然这也是要看使用者怎么个使用法,你代码如果10000次写入使用10000次连接,那也是比不过其他数据库使用事务一次性提交的速度的。 同样

  • 问题内容: 我有一个Spring / Hibernate网络应用程序,该应用程序具有一些在内存中的HSQL数据库上运行的集成测试。由于hbm2ddl = create,Hibernate使用了这个空白数据库并创建了我的所有测试表和约束。但是,我有一个新的bean,在它的afterPropertiesSet()方法期间检查数据库中的特定配置值,因此,当初始化此bean时,数据库中必须存在这样的行。

  • 我的问题正好相反,这里的大多数问题是测试数据没有被插入,我的问题在测试中持续存在,但在通过控制器调用时不会。 我在这方面还是新手,所以可能犯了一些愚蠢的错误。感谢任何帮助! 这是我的设计。 项目1:业务逻辑层:实体、服务、Repo (Spring数据)、Oracle = 项目2:Spring MVC 4.3.3,Thymeleaf 3,import bll.jar,控制器调用BLL服务进行保存。日

  • 本文向大家介绍使用Postgresql 实现快速插入测试数据,包括了使用Postgresql 实现快速插入测试数据的使用技巧和注意事项,需要的朋友参考一下 1.创建常规的企业信息表 2.需要使用的函数 3.常规测试数据插入(5000000条) 在普通pc机上插入,大概完成时间约8小时,过程不可监控,并且cpu/内存占用率高,磁盘基本满负荷动作,读写率基本上都是100%. 4.改进后的方法, 插入(

  • 我有一个方法调用另一个方法来检索数据并将其插入数据库,既然这个方法什么也不检索,我如何在Junit中测试这个方法呢?有人能给我提供一些这种情况的例子吗? 我想为用户使用mock对象,但我不确定如何检查用户是否插入到数据库中。请帮帮忙。

  • 问题内容: 我有一个Spring / Hibernate网络应用程序,该应用程序具有一些在内存中的HSQL数据库上运行的集成测试。由于hbm2ddl = create,Hibernate使用了这个空白数据库并创建了我的所有测试表和约束。但是,我有一个新的bean,在它的afterPropertiesSet()方法期间检查数据库中的特定配置值,因此,当初始化此bean时,该行需要存在于数据库中。 有