gpt4 book ai didi

java - 如何将参数化 JUnit 测试运行器与使用 Spring 注入(inject)的字段一起使用?

转载 作者:IT老高 更新时间:2023-10-28 13:50:46 25 4
gpt4 key购买 nike

我正在使用 Spring 将目录路径注入(inject)到我的单元测试中。在这个目录中有许多文件,这些文件应该被用来为参数化测试用例生成测试数据,使用 Parameterized。测试赛跑者。不幸的是,测试运行器要求提供参数的方法是静态的。这不适用于我的情况,因为该目录只能注入(inject)到非静态字段中。有什么想法可以解决这个问题吗?

最佳答案

您可以使用 Spring 中的 TestContextManager。在这个例子中,我使用的是理论而不是参数化。

@RunWith(Theories.class)
@ContextConfiguration(locations = "classpath:/spring-context.xml")
public class SeleniumCase {
@DataPoints
public static WebDriver[] drivers() {
return new WebDriver[] { firefoxDriver, internetExplorerDriver };
}

private TestContextManager testContextManager;

@Autowired
SomethingDao dao;

private static FirefoxDriver firefoxDriver = new FirefoxDriver();
private static InternetExplorerDriver internetExplorerDriver = new InternetExplorerDriver();

@AfterClass
public static void tearDown() {
firefoxDriver.close();
internetExplorerDriver.close();
}

@Before
public void setUpStringContext() throws Exception {
testContextManager = new TestContextManager(getClass());
testContextManager.prepareTestInstance(this);
}

@Theory
public void testWork(WebDriver driver) {
assertNotNull(driver);
assertNotNull(dao);
}
}

我在这里找到了这个解决方案:How to do Parameterized/Theories tests with Spring

关于java - 如何将参数化 JUnit 测试运行器与使用 Spring 注入(inject)的字段一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3405422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com