如何改善我的junit测试
我的junit测试看起来像是一个漫长的故事:
- 我创建了4位用户
- 我删除了1位用户
- 我尝试使用已删除的用户登录,并确保失败
- 我使用剩余的3个用户之一登录并确认我可以登录
- 我从一个用户向另一个用户发送一条消息,并验证该消息是否出现在发件人的发件箱和收件人的收件箱中。
- 我删除邮件
- …
- …
优点:测试非常有效(非常善于检测错误)并且非常稳定,因为它们仅使用API,如果我重构代码,那么测试也会被重构。由于我不使用“肮脏的技巧”,例如以给定状态保存和重新加载数据库,因此我的测试忽略了架构更改和实现更改。
缺点:测试变得难以维护,测试中的任何更改都会影响其他测试。测试运行8-9分钟,这对于持续集成非常有用,但对开发人员来说有点令人沮丧。测试不能孤立运行,最好的办法是在你感兴趣的测试运行后停止-但你绝对必须运行之前进行的所有测试。
将如何改善
回答:
单元测试应该(理想情况下)应该是独立的,并且能够以任何顺序运行。因此,我建议您:
- 分拆测试以保持独立
- 考虑使用内存数据库作为测试的后端
- 考虑将每个测试或套件包装在最后回滚的事务中
- 对单元测试进行概要分析,以了解时间在哪里,并专注于此
如果要花8分钟来创建几个用户并发送一些消息,则性能问题可能不在测试中,而可能是系统本身存在性能问题的征兆-只有您的分析器才能确定!
[caveat:尽管我可能只是
以上是 如何改善我的junit测试 的全部内容, 来源链接: utcz.com/qa/408510.html