我应该在我的春季项目中使用啥样的测试(我做得对吗)?

Posted

技术标签:

【中文标题】我应该在我的春季项目中使用啥样的测试(我做得对吗)?【英文标题】:What kind of test shall I use in my spring project(and am I doing it right)?我应该在我的春季项目中使用什么样的测试(我做得对吗)? 【发布时间】:2020-05-10 22:36:40 【问题描述】:

我的项目是一个简单的店铺管理系统,连接到 mysql 数据库。

我只有这样的 JUnit 测试(这个测试写对了吗?):

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class EmployeeRepositoryIntegrationTest

    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private EmployeeRepository employeeRepository;

    @Test
    public void whenFindByLastName_thenReturnEmployee()
    
        User employee = new User("UserName","password","John",
                        "Smith","Adress Test","123123123","CityTest");

        entityManager.persist(employee);
        entityManager.flush();

        User result = userRepository.findUserByLastName(employee.getLastName()).get(0);
        assertThat(result.getLastName()).isEqualTo(employee.getLastName());
    

我应该添加 Mockito 测试,将来我应该添加什么样的测试?

【问题讨论】:

【参考方案1】:

我会避免使用 Mockito 来测试你的 JPA 存储库。

最好用真实的测试数据播种内存数据库(可以旋转和拆除)。

如果您正在使用 @DataJpaTest 注释,您应该使用 sql 来为您的数据库播种,请查看此 @DataJpaTest example。您可以使用 sql 文件并摆脱 TestEntityManager。

看看这个DBUnit example。您将测试数据添加到资源目录中的 XML 文件中。

【讨论】:

嗨。感谢您展示测试我的项目的正确方法!我肯定会在我的测试中使用它。

以上是关于我应该在我的春季项目中使用啥样的测试(我做得对吗)?的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET 中异步发送电子邮件的正确方法...(我做得对吗?)

RestKit 与 Core Data 多对多:它有效,但我做得对吗?

Java中的并发 - 将任务委派给工作线程,我做得对吗?

我应该使用啥样的描述符来检测海豹幼崽?

是啥样的测试?巢穴

readObject 的 EOF 异常