我从我的代码运行JUnit:
Result result = JUnitCore.runClasses(MyClassNameTest.class);
我正在处理的问题是,MyClassName依赖于其他类 - 让我们说它的名字是SomeOtherClass,我需要该类以某种方式将其实例注入“JUnit运行时”以使MyClassName可见。有可能吗?
答案 0 :(得分:1)
你不应该让其他课程进行测试 - 我建议你嘲笑它们。我会选择Mockito,this question对各种选项进行了很好的讨论。如果您无法通过模拟其他依赖项来进行测试,我认真建议您重构代码,以便可以完成。
如果你真的不想去那条(右)路径,你可以尝试一些依赖注入框架,如Spring,并为每个测试类设置一个单独的上下文。在junit4,您可以使用@BeforeClass
@BeforeClass
public void initSpring()
{
Application context = getTestAppContext();//should be unique config for this class
requiredProperty = contex.getBean("someProperty");
}
答案 1 :(得分:1)
考虑使用Guice等框架进行依赖注入。这是一个介绍,应该让你很好地了解它是什么以及如何使用它:
答案 2 :(得分:0)
当然可以。
一种方法是使用Map,其中键是父类的类或名称,值是子类或类的名称。进行查找并将其传递给工厂进行实例化。