2013-02-05 76 views
0

我有一个扩展了JUnit TestCase类的类。该测试有一些需要执行的“设置”例程。其中一个例程是将一些数据插入到数据库中,另一个例子是将JMS消息发送到EMS队列。测试设置例程设计模式

目前,所有这些功能都位于测试类中的重写setUp方法内部。但是,必须有更好的方法来做到这一点。我可能想要使用依赖注入也使测试类更通用。

谢谢。

+1

“必须有更好的方法来做到这一点”什么问题是你遇到你现在的方法? –

+1

当您使用'setUp()'在数据库中插入数据并排入JMS消息时,您并不真正进行单元测试......通常应该在运行单元测试时存根/模拟依赖于外部资源的代码部分。 –

+0

@tieTYT这种方法是非常长的100多行,不可读/可维护。我只是想分解它,避免过于复杂。 – Nick

回答

1

我不认为依赖注入是必然的答案,除非你打算为你的测试用例编写测试。如果我是你,我会做最简单的事情,那就是将这个设置代码提取到类中。例如,一个JmsSetup类和一个DatabaseSetup类。让你的设置方法创建并使用这些类。

把它从那里,如果开始变得凌乱,你可以做更多,但不要越过这座桥,直到你到达它。

1

没有什么能阻止你将这些设置代码片段分解成单独的类并使用任何其他您喜欢的OO原则。然后,您可以有一个简单的安装程序,将其全部委派给执行实际工作的许多类,因此可以在其他测试用例中重复使用。