【发布时间】:2016-01-09 01:45:40
【问题描述】:
我的目标是在使用 Spring 进行对象创建和连接时运行 Cucumber 场景。据我了解(来自一些 Cucumber 书籍),只要路径配置正确,Cucumber runner 应该负责加载应用程序上下文。
例如,如果我有一个如下所示的运行器 Java 类:
@RunWith(Cucumber.class)
@CucumberOptions(features = {"classpath:xxx_features"},
glue = {"com.package.name"})
public class FunctionalDevIT {
}
然后 Cucumber runner 将自动扫描并初始化它会找到的所有 bean,因此我将不必手动加载应用程序上下文以及获取 bean 一个从上下文中得到一个。
目前,为了理解这个概念,我创建了一个包含三个 Java 类的最基本配置:
- Runner 类(如上所述)
-
Beans Class - 包含 bean 的类
@Component public class BeansClass { @Bean public void test1() { System.out.println("test1!"); } } -
主类 - 使用 Beans 类中定义的 bean 的类
@ContextConfiguration("classpath:/cucumber.xml") public class MainClass { @Autowired private BeansClass testclass; @Before public void navigate() { testclass.test1(); } }
目前这种方法对我不起作用,当我尝试在 Main 类中调用 testclass.test1() 方法时,我得到了 NullPointerException,这意味着毕竟没有加载上下文。
我是否遗漏了一些配置,或者我对它应该如何工作的整体理解是错误的?
P.S.我所有的文件目前都在同一个包中。
【问题讨论】:
标签: java spring junit automation cucumber