我正在从我的代码运行 JUnit:
Result result = JUnitCore.runClasses(MyClassNameTest.class);
我正在处理的问题是 MyClassName 依赖于其他一些类 - 假设它的名称是 SomeOtherClass,我需要该类以某种方式将其实例注入(inject)“JUnit 运行时”,以便对 MyClassName 可见。可能吗?
最佳答案
您不应该需要其他类来进行测试 - 我建议您模拟它们。 Mockito是我会选择的,并且 this question关于各种选项进行了很好的讨论。如果您无法通过模拟其他依赖项来进行测试,我强烈建议您重构您的代码,以便可以完成。
如果你真的不想走那条(正确的)道路,你可以尝试一些依赖注入(inject)框架,例如 Spring ,并且每个测试类都有一个单独的上下文。在 junit4 中,您可以使用 @BeforeClass
@BeforeClass
public void initSpring()
{
Application context = getTestAppContext();//should be unique config for this class
requiredProperty = contex.getBean("someProperty");
}
关于java - 如何将自定义类对象注入(inject)Junit环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10635789/