加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在我的系统中模拟/测试核心对象

发布时间:2020-12-15 08:30:55 所属栏目:Java 来源:网络整理
导读:我被要求改变一些对我们工作的系统来说是核心的类.有问题的类每个都需要5-10个不同的相关对象,这些对象本身需要相同数量的对象. 数据也从几个数据源中提取,项目使用EJB2,因此在测试时,我运行时没有容器来引入我需要的依赖项! 我开始对这项任务感到不知所措.
我被要求改变一些对我们工作的系统来说是核心的类.有问题的类每个都需要5-10个不同的相关对象,这些对象本身需要相同数量的对象.

数据也从几个数据源中提取,项目使用EJB2,因此在测试时,我运行时没有容器来引入我需要的依赖项!

我开始对这项任务感到不知所措.我已经尝试过使用JUnit和Easymock进行单元测试,但是只要我模拟或存根一件事,我发现它需要更多.所有东西似乎都紧密耦合,以便我用我的存根达到大约3或4级,以防止NullPointerExceptions.

通常使用这种类型的任务,我只需要进行更改和测试.但最短的构建周期大约是10分钟,我喜欢在执行之间进行非常短的迭代编码(可能因??为我对编写完美代码的能力不太自信).

任何人都知道一个好的策略/工作流程来摆脱这个泥潭?

解决方法

正如你的建议,听起来你的主要问题是你正在使用的API太紧密耦合了.如果您能够修改API,那么隐藏接口后面的直接依赖关系会非常有帮助,这样您就可以在直接依赖关系中切断依赖关系图.

如果无法做到这一点,自动模拟容器可能会有所帮助.这基本上是一个容器,它自动指出如何返回嵌套抽象的具有良好默认行为的模拟.当我在.NET框架上工作时,我不推荐任何Java.

如果您想了解单元测试模式和最佳实践,我只能推荐xUnit Test Patterns.

对于解耦紧耦合代码的策略,我建议Working Effectively with Legacy Code.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读