Java Spring云契约:多个控制器
我有一个spring云契约基础测试类:Java Spring云契约:多个控制器,java,spring-boot,spring-cloud-contract,Java,Spring Boot,Spring Cloud Contract,我有一个spring云契约基础测试类: public abstract class TestsBase { @Autowired protected MyFirstController myFirstController; ... RestAssuredMockMvc.standaloneSetup(myFirstController); } 该类在我的maven插件配置中引用如下: <plugin> <groupId>org
public abstract class TestsBase {
@Autowired
protected MyFirstController myFirstController;
...
RestAssuredMockMvc.standaloneSetup(myFirstController);
}
该类在我的maven插件配置中引用如下:
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<version>${spring-cloud-contract.version}</version>
<extensions>true</extensions>
<configuration>
<basePackageForTests>com.contracts.basepackage</basePackageForTests>
<baseClassForTests>com.contracts.basepackage.TestsBase</baseClassForTests>
</configuration>
</plugin>
不起作用。你知道我怎样才能做到这一点吗?我还没有在任何地方找到解决方案。
standaloneSetup
使用varargs。只需传递第一个控制器旁边的第二个控制器:restassuredmocmvc.standaloneSetup(myFirstController、mySecondController)代码>standaloneSetup
接受变量。只需传递第一个控制器旁边的第二个控制器:restassuredmocmvc.standaloneSetup(myFirstController、mySecondController)代码>非常感谢,@Marcin。我觉得没有先看Javadoc很愚蠢:(如果我的控制器有包私有可见性怎么办?然后你要么做1)基类映射,每个控制器有一个基类2)你只需要使用rest assured的MockMvc的web应用上下文版本3)执行一个hack:你需要在包中有一个访问器(例如,a.b.c
)在将是公共的测试中(public类MyPackageScopeControllerAccessor{}
),它将有一个公共方法来访问包作用域public MyPackageScopeController(){返回新的MyPackageScopeController();}
非常感谢,@Marcin。我觉得没有先看Javadoc很愚蠢:(如果我的控制器有包私有可见性怎么办?然后你要么做1)基类映射,每个控制器有一个基类2)您只需要使用rest assured的MockMvc 3的web应用上下文版本)执行一个hack:在将是公共的测试(公共类MyPackageScopeControllerAccessor{}
)中,您需要在包(例如a.b.c
)中有一个访问器这将有一个公共方法来访问包作用域公共MyPackageScopeController(){返回新的MyPackageScopeController();}
RestAssuredMockMvc.standaloneSetup(mySecondController);