我试图模拟一个使用JAXRS的类,这个类是一个spring组件。
@Component
public class PostmanClient {
private WebTarget target;
public PostmanClient() {
Client client = ClientBuilder.newClient();
target = client.target(...);
}
public String send(String xml) {
Builder requestBuilder = target.request(MediaType.APPLICATION_XML_TYPE);
Response response = requestBuilder.post(Entity.entity(xml, MediaType.APPLICATION_XML_TYPE));
return response.readEntity(String.class);
}
}
@Test
public void processPendingRegistersWithAutomaticSyncJob() throws Exception {
PostmanClient postmanClient = mock(PostmanClient.class);
String response = "OK";
whenNew(PostmanClient.class).withNoArguments().thenReturn(postmanClient);
when(postmanClient.send("blablabla")).thenReturn(response);
loadApplicationContext(); // applicationContext = new ClassPathXmlApplicationContext("/test-context.xml");
}
如果将PowerMock与Spring一起使用,您应该考虑以下提示:
1。使用@RunWith(SpringJunit4Runner.class)
2。使用@contextconfiguration(“/test-context.xml”)//在测试
3之前加载spring上下文。使用@preparefortest(...class)//模拟静态方法
4。使用PowerMockRule
5。模拟spring bean的最简单方法是使用springockito
回到您的问题:
如果我没有理解错,您在spring上下文中定义了PostmanClient
,这意味着,您只需要使用springockito
来实现您的目标,只需按照springockito页面上的教程操作即可。
我读了很多关于如何模拟Spring的bean和它们的自动连线场的文章。但我找不到任何关于豆子的autowired列表。 具体问题 我想测试一下这门课。但我找不到模拟属性的方法。 我所尝试的 由于是单例,我尝试模拟这些bean的几个实例,希望它们能够反映在中,但没有成功。 然后,我尝试创建一个列表,该列表被注释为。通过手动启动,我希望注入创建的列表。这仍然没有成功。 在中抛出了一个NPE,我认为这会
我想通过ts-Mockito@2.5.0创建一个类的模拟对象,但我无法正确设置它。 以下是设计的测试用例: 正如测试用例所暗示的,我希望从我的模拟中返回“I AM mocked”的值。 我应该如何设置模拟,使其按预期工作? 旁白:这个测试用例只是为了展示我正在经历的奇怪行为。这不是我真正的测试。我想在不同服务的单元测试中使用模拟。)
问题内容: 我要测试的Java类(称为)具有以下功能: (有一种方法可以检查条件并调用A或B)。 如何将每个服务的模拟注入适当的变量? 我的Junit拥有以下功能: 但是,当我运行测试以检查在正确条件下调用的服务A / B时,由于没有注入模拟,我得到了空指针。 显然是由于对同一接口()有多个依赖关系。声明模拟服务时,是否可以指定限定词?还是我需要为依赖项设置setter并设置老式方式? 问题答案:
我要测试的Java类(称为)具有以下内容: (有一个方法,它将检查条件并调用a或B)。 显然,这是因为同一个接口()上存在多个依赖关系。在声明模拟服务时,有没有一种方法可以指定限定符?或者我需要为依赖项设置设置器并设置老式的方式吗?
CacheController.Somemethod();但是当submit方法被称为submit方法时,它会创建一个线程和cacheController.somemethod();从不调用测试类。
当我运行测试时,我可以做什么来更改时间