我正在寻找一种很好的方法来激活我的黄瓜测试的弹簧配置文件。 黄瓜测试需要使用标记为:
的服务的存根版本@Profile("test")
@Component
class FooServiceStub extends FooService {...}
常规服务如下所示:
@Profile("prod")
@Component
class FooService {...}
我的要求:
我找到的来源但未解决我的问题:
答案 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并且我的测试通过了。