Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RestClientTest和NoSuchBeanDefinitionException_Java_Spring Boot_Junit_Spring Boot Configuration - Fatal编程技术网

Java RestClientTest和NoSuchBeanDefinitionException

Java RestClientTest和NoSuchBeanDefinitionException,java,spring-boot,junit,spring-boot-configuration,Java,Spring Boot,Junit,Spring Boot Configuration,我正在尝试使用@RestClientTest测试rest客户机类 据称: 它将仅应用与rest客户端测试相关的配置 (Jackson或GSON自动配置和@JsonComponent bean),但是 不是普通的@Component bean 因此,正如预期的那样,我得到了一些错误,例如:NoSuchBeanDefinitionException,这些bean确实不受关注 有没有办法跳过这些错误?或者我要为这个特定的测试类或其他什么配置上下文 提前谢谢。我找到了解决办法 因为我们不能将@RestC

我正在尝试使用
@RestClientTest
测试rest客户机类

据称:

它将仅应用与rest客户端测试相关的配置 (Jackson或GSON自动配置和@JsonComponent bean),但是 不是普通的@Component bean

因此,正如预期的那样,我得到了一些错误,例如:
NoSuchBeanDefinitionException
,这些bean确实不受关注

有没有办法跳过这些错误?或者我要为这个特定的测试类或其他什么配置上下文

提前谢谢。

我找到了解决办法

因为我们不能将@RestClientTest与@SpringBootTest一起使用,所以请坚持使用通常的@SpringBootTest,并按如下方式使用测试实用程序类:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class JasperClientTest {

    @Value("${jasper.baseUri}")
    private String jasperBaseURI;

    @Autowired
    RestTemplate restTemplate;

    @Autowired
    private JasperClient jasperClient;

    private MockRestServiceServer mockRestServiceServer;

    @Before
    public void setUp() {
        mockRestServiceServer = MockRestServiceServer.createServer(restTemplate);
    }

    @Test
    public void sendRequest() {

        String detailsString ="{message : 'under construction'}";

        String externalId = "89610185002142494052";
        String uri = jasperBaseURI +  "/devices/" + externalId + "/smsMessages";

        mockRestServiceServer.expect(requestTo(uri)).andExpect(method(POST))
                .andRespond(withSuccess(detailsString, MediaType.APPLICATION_JSON));

        boolean isSentSuccessfully = jasperClient.sendRequest(externalId);
        assertTrue(isSentSuccessfully);
    }
}
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class JasperClientTest {

    @Value("${jasper.baseUri}")
    private String jasperBaseURI;

    @Autowired
    RestTemplate restTemplate;

    @Autowired
    private JasperClient jasperClient;

    private MockRestServiceServer mockRestServiceServer;

    @Before
    public void setUp() {
        mockRestServiceServer = MockRestServiceServer.createServer(restTemplate);
    }

    @Test
    public void sendRequest() {

        String detailsString ="{message : 'under construction'}";

        String externalId = "89610185002142494052";
        String uri = jasperBaseURI +  "/devices/" + externalId + "/smsMessages";

        mockRestServiceServer.expect(requestTo(uri)).andExpect(method(POST))
                .andRespond(withSuccess(detailsString, MediaType.APPLICATION_JSON));

        boolean isSentSuccessfully = jasperClient.sendRequest(externalId);
        assertTrue(isSentSuccessfully);
    }
}