我正在升级到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文件中?如果是这样,如果文件说明了这将是有帮助的。
答案 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提供显式依赖。在你的插件中修复生成的测试中的导入。