我已经在一个Spring Boot项目中创建了一个Spring云契约存根(spring-server
)。希望调用此存根的客户机不是Spring项目,也不可能是Spring项目。如果我在客户端中运行以下命令:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureStubRunner(ids = {"uk.co.hadoopathome:spring-server:+:stubs:8093"},
stubsMode = StubRunnerProperties.StubsMode.LOCAL)
public class ContractTest {
@Test
public void testContractEndpoint() {
try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet("http://localhost:8093/ac01");
CloseableHttpResponse response = httpclient.execute(httpGet);
String entity = EntityUtils.toString(response.getEntity());
assertEquals("ac01returned", entity);
response.close();
} catch (IOException ignored) {
}
}
}
然后我得到一个错误
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
显然,我没有@springbootconfiguration
,因为这不是一个Spring Boot项目。
这里有什么变通办法?
只需使用Junit规则,就不必设置上下文
public class JUnitTest {
@Rule public StubRunnerRule rule = new StubRunnerRule()
.downloadStub("com.example","beer-api-producer")
.withPort(6543)
.workOffline(true);
@Test
public void should_work() {
String response = new RestTemplate().getForObject("http://localhost:6543/status", String.class);
BDDAssertions.then(response).isEqualTo("ok");
}
使用方法创建新资源时,将新资源的位置添加到响应中,作为标头。 如何创建一个spring云契约YML来验证响应是否包含头,并将有效的作为其值? 我试过下面的YAML,但它不工作。 生成测试代码 生成的代码不包含任何头验证。
我正在查看spring docs和spring github,我可以看到一些通过json消息和kafka主题进行通信的异步kafka消息传递(生产者和消费者)的非常基本的示例,但似乎没有更多的示例用于更像生产的设置,其中消息不是json而是avro消息,而Schema Registry(例如Confluent)也在图片中。我对此感到非常惊讶,因为当基于事件的微服务通过生成/使用avro消息进行通信
在 中测试代码依赖项。格雷德尔, 当我以的形式运行应用程序时,我得到了一个错误: 为什么在IDE中运行项目时使用测试依赖项?或者我错过了什么? 任何帮助都非常感谢:) 注: 1-如果我使用或gradle boot run在IDE之外运行它,它运行得很好 2-我尝试过刷新gradle项目、清洁项目等。 3-使用STS版本
我正在尝试为Java项目学习eclipse。我使用初始化器(https://start.Spring.io/)使用Spring Web的依赖项设置Spring Boot。我试图在eclipse中构建我的项目,并得到以下错误 有什么想法吗?
我有以下spring cloud合同: 为了从服务器生成动态响应,我在响应处调用get响应。例如,原因可能是来自数据库的自动生成的id。从get响应ForFindTeamRletByFilters()生成的字符串是一个有效的JSON,不幸的是,它被忽略,并且在测试运行时返回始终为true。 当我用如下静态响应替换execute方法时,我注意到了这一点: 在这种情况下,响应被正确验证,如果不匹配,则
我的maven项目结构: 我的问题是,我只需要运行父模块,它自动实例化子模块(tomcat服务器)。spring boot多模块项目有可能吗? 注意:我使用的是STS。父模块打包是pom,子模块打包是jar文件。 我的父pom文件 我的问题是如何使用Tomcat运行父项目?如果我运行父项目,子模块是否自动运行? 提前感谢!!!