如何用黄瓜

时间:2017-04-04 09:29:26

标签: spring testing spring-boot cucumber feature-file

我正在寻找一种很好的方法来激活我的黄瓜测试的弹簧配置文件。 黄瓜测试需要使用标记为:

的服务的存根版本
@Profile("test")
@Component
class FooServiceStub extends FooService {...}

常规服务如下所示:

@Profile("prod")
@Component
class FooService {...}    

我的要求:

  • 使用mvn:$ mvn test
  • 运行黄瓜测试
  • 在IDE中运行黄瓜测试
  • 在构建服务器上运行黄瓜测试
  • 无需使用-Dspring.profiles.active = ...参数

我找到的来源但未解决我的问题:

1 个答案:

答案 0 :(得分:2)

我已经使用我在FeatureStep类上添加的注释解决了这个问题。

注释:

请注意@ActiveProfiles。

import java.lang.annotation.*;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@ContextConfiguration
@ActiveProfiles("test")
@SpringBootTest(
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, 
    classes = FeatureTestConfiguration.class)
public @interface FeatureFileSteps {
}

配置类非常基础:

@Configuration
@Import(FooApplication.class)
public class FeatureTestConfiguration {

}

使用注释:

将注释添加到功能步骤:

@FeatureFileSteps
public class FooFeatureSteps {
    @Given(...)
    @When(...)
    @Then(...)
}

现在,当从我的IDE,带有maven的命令行或构建服务器上运行Cucumber功能测试时,我的测试是使用FooServiceSTub并且我的测试通过了。