java - 如何将自定义类对象注入(inject)Junit环境?

标签 java junit junit4 junit-ee

我正在从我的代码运行 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/

相关文章:

java - 事务传播和持久性 与 Oracle 存储过程的上下文同步

Java计算排序数组中每个项目的出现次数

java - JUnit ClassRule 在 Spring Boot 应用程序关闭之前执行代码

android - 如何从测试中访问字符串资源?

java - AssertEquals(String, String) 内容相同时比较失败

java - 未在 IntelliJ 中找到匹配方法 main 的测试

java - 将实时数据记录到 NoSQL DB 的最佳实践

java - In-App Billing V3 - 购买 3 个月后过期的对象 - Android

java - 我如何在 Xvfb 上启动 mvn 测试阶段?

java - 使用库运行测试任务,但使用 Junit 的 gradle 中不存在包