java - TestNG 是否有像 SpringJUnit4ClassRunner 这样的运行者

标签 java spring junit testng

当我在 JUnit 中(在 Spring 上下文中)编写测试时,我通常会这样做:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:testContext.xml")
public class SimpleTest {

    @Test
    public void testMethod() {
        // execute test logic...
    }
}

如何使用 TestNG 做同样的事情?


我会添加更多细节。使用 AbstractTestNGSpringContextTests 它可以工作,但不是我想要的方式。 我有一些测试...

@ContextConfiguration(locations = { "classpath:applicationContextForTests.xml" })
public class ExampleTest extends AbstractTestNGSpringContextTests {

    private Boolean someField;

    @Autowired
    private Boolean someBoolean;

    @Test
    public void testMethod() {
        System.out.println(someField);
        Assert.assertTrue(someField);
    }

    @Test
    public void testMethodWithInjected() {
        System.out.println(someBoolean);
        Assert.assertTrue(someBoolean);
    }

    // setters&getters
}

和描述符...

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="exampleTest" class="pl.michalmech.ExampleTest">
        <property name="someField">
            <ref bean="someBoolean"/>
        </property>
    </bean>

    <bean id="someBoolean" class="java.lang.Boolean">
        <constructor-arg type="java.lang.String" value="true"/>
    </bean>
</beans>

结果是……

null
true
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.599 sec <<< FAILURE!

Results :

Failed tests: 
  testMethod(pl.michalmech.ExampleTest)

这就是我问runner的原因。

最佳答案

TestNG 不使用 Spring 来实例化您的测试。这就是为什么 someField=null

关于java - TestNG 是否有像 SpringJUnit4ClassRunner 这样的运行者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624724/

相关文章:

java - 通过 <xsl :param> to <a href>

java - JPA Criteria API 获取具有特定父属性值的实体

Java SWT 在屏幕上集中绝对组合

java - 如何在 Spring Boot 应用程序中使用 Spring Security 监听登录/注销事件?

java - 从用户获取更多信息 - Spring Security

spring - 在 spring 的测试单元中注入(inject) @PersistenceContext

java - 如何为新的 Android M 运行时权限使用 Permissionsdispatcher 库?

java - 我可以使用 Spring 将使用 @Entity 注解的模型类实例注入(inject)到 Controller 中吗?

java - Spring Boot : Preload Data and configure H2 for tests. 特殊配置问题

java - 我需要在测试前在 junit 中运行一次初始化代码 - java