我应该在我的春季项目中使用啥样的测试(我做得对吗)?
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 中异步发送电子邮件的正确方法...(我做得对吗?)