微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 如何改进我的junit测试

对我的junit测试看起来像一个漫长的故事:

>我创建4个用户
>我删除1个用户
>我尝试使用已删除用户登录,并确保它失败
>我用剩下的3个用户登录,验证我可以登录
>我将消息从一个用户发送到另一个用户,并确认它显示在发件人的发件人和收件人的收件箱中.
>我删除消息
> …
> …

优点:
测试是非常有效的(非常好的检测错误),并且非常稳定,因为他们只使用API​​,如果我重构代码,那么测试也被重构.因为我不使用“肮脏的技巧”,例如在给定的状态下保存和重新加载数据库,所以我的测试忽略了模式更改和实现更改.

缺点:
测试变得难以维护,任何测试变化都会影响其他测试.测试运行8-9分钟,这对于持续集成是非常好的,但对开发人员来说有点令人沮丧.测试不能孤立运行,您可以做的最好的就是在您感兴趣的测试中停止运行,但您绝对必须运行所有以前的测试.

你如何改进我的测试?

解决方法

单元测试应该理想地是独立的,并且能够以任何顺序运行.所以,我建议你:

分解你的测试是独立的
考虑使用内存数据库作为测试的后端
考虑在最后回滚的事务中包装每个测试或套件
>单位测试来查看时间的流逝,并集中精力

如果创建几个用户并发送几个消息需要8分钟,性能问题可能不在测试中,而可能是系统本身的性能问题的症状 – 只有您的Profiler可以肯定地知道!

[请注意:我不认为这些测试是“集成测试”,尽管我可能在少数;我认为这些类型的测试是功能的单元测试,一个TDD]

原文地址:https://www.jb51.cc/java/125168.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐