升级到Spring Cloud Contract 1.2.0后,基类不再起作用

时间:2018-01-09 14:51:02

标签: spring-cloud-contract

我正在升级到Spring Cloud Edgware.RELEASE,我对如何正确设置Spring Cloud Contract测试的基类有疑问。以下是我目前作为通过Dalston.SR5工作的基类:

import javax.servlet.Filter;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import com.jayway.restassured.module.mockmvc.RestAssuredMockMvc;

@RunWith(SpringRunner.class)
@ActiveProfiles("local")
@SpringBootTest(classes = {Bootstrap.class})
@DirtiesContext
public class ConsumerDrivenContractTests {

  @Autowired
  private WebApplicationContext applicationContext;

  @Autowired
  private Filter springSecurityFilterChain;

  @Test
  public void generateTestsFromGroovyFiles() {

  }

  @Before
  public void setup() {
    DefaultMockMvcBuilder defaultMockMvcBuilder =
        MockMvcBuilders.webAppContextSetup(applicationContext).addFilter(springSecurityFilterChain);
    MockMvc mockMvc = defaultMockMvcBuilder.build();
    RestAssuredMockMvc.mockMvc(mockMvc);
  }

}

升级到Edgware.RELEASE后,我的import com.jayway.restassured.module.mockmvc.RestAssuredMockMvc;不再解析,这令人困惑。 Spring Cloud Contract文档声明&#34;默认情况下,Rest Assured 3.x被添加到类路径&#34; (参见http://cloud.spring.io/spring-cloud-static/spring-cloud-contract/1.2.0.RELEASE/single/spring-cloud-contract.html#maven-rest-assured),给出的示例显示了如何使用具有<groupId>com.jayway.restassured</groupId>依赖关系的Rest Assured 2.x.但是,1.2.0.RELEASE的<artifactId>spring-cloud-starter-contract-verifier</artifactId>会引入<groupId>io.rest-assured</groupId>依赖项。鉴于文档,我期待解决com.jayway...个罐子。

升级到1.2.0.RELEASE后,我的基类方法是否仍然有效,如果是,我是否需要将com.jayway...依赖项显式添加到我的pom.xml文件中?如果是这样,如果文件说明了这将是有帮助的。

1 个答案:

答案 0 :(得分:1)

默认情况下,Rest Assured 3.x会添加到类路径中。 RestAssured 3.x.有导入io.restassured,它们会出现在您生成的测试中。您在基类中有com.jayway,它是RestAssured 2.x.因此,生成的测试要求您在基类中使用io.restassured导入。因此,要么修复基类以使用Rest Assured 3.x,要么必须为Rest Assured 2.x提供显式依赖。在你的插件中修复生成的测试中的导入。