我有一个方法级别的侦听器,看起来像这样
public class DefaultListener implements IInvokedMethodListener2 {
@Autowired
JdbcTemplate jdbcTemplate;
public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
}
public void afterInvocation(IInvokedMethod method, ITestResult testResult) {
}
public void beforeInvocation(IInvokedMethod method, ITestResult testResult,
ITestContext context) {
updateDatabaseWithTestStartTime();
}
private void updateDatabaseWithTestStartTime() {
jdbcTemplate.update("....");
}
// other methods.
}
如何在上面的示例中自动装配jdbcTemplate?我查看了spring-test并与test-ng集成,但像these这样的例子正在谈论在测试级别控制自动装配 - 我的需求是特定于侦听器的。
答案 0 :(得分:1)
IInvokedMethodListener2
是一个TestNG监听器,因此与 Spring TestContext Framework 无关。
如果您想在可重复使用的侦听器中与Spring ApplicationContext
中的bean进行交互,则需要实现Spring TestExecutionListener
。
查看SqlScriptsTestExecutionListener
获取有关如何实现此类监听器的灵感。
有关详细信息,请阅读有关" TestExecutionListener
"的所有讨论。在Spring参考手册的Testing章节中,要特别注意TestExecutionListener configuration部分。