- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
@MockBean
private RestTemplateBuilder restTemplateBuilder;
@MockBean
private RestTemplate restTemplate;
@InjectMocks
private FetchCoreVersionsList fetchCoreVersionsList;
@Test
public void testCoreVersionsJsonHandle() throws Exception{
when(restTemplate.getForObject("https://openmrs.jfrog.io/openmrs/api/storage/public/org/openmrs/api/openmrs-api/",
String.class))
.thenReturn(new ObjectMapper().readValue(getFileAsString("core-versions.json"), String.class));
}
运行测试时,出现以下错误
org.mockito.exceptions.misusing.UnfinishedStubbingException:
此处检测到未完成的 stub :-> 在 org.openmrs.addonindex.scheduled.FetchCoreVersionsListIT.testCoreVersionsJsonHandle(FetchCoreVersionsListIT.java:66)
我对创建测试用例还很陌生,所以如果它有些愚蠢,请耐心等待:)
最佳答案
以下是使用 Spring Boot 2.0 的方法:
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestTemplate;
@SpringBootTest @RunWith(SpringRunner.class)
public class myTests() {
@MockBean RestTemplate restTemplate;
@Test
public void test1() {
String uri = "http://example.org", msg="hello";
Mockito.doReturn(msg).when(restTemplate).getForObject(eq(uri),any());
String response = restTemplate.getForObject(uri,String.class);
Mockito.verify(restTemplate).getForObject(eq(uri),any());
assertEquals(response,msg);
}
}
<小时/>
Mockito 提供两种不同的语法: Mockito - difference between doReturn() and when()
Mockito.doReturn(new ResponseEntity<String>("200 OK",HttpStatus.OK)).when(restTemplate).postForEntity(eq(url),any(),eq(String.class));
// or
Mockito.when(restTemplate.postForEntity(eq(url), any(), eq(String.class))).thenReturn(new ResponseEntity<String>("200 OK", HttpStatus.OK));
还有其他技巧,例如使用 eq(String.class)
而不仅仅是 String.class
。错误输出试图引导您详细了解这一点。
关于java - 如何修复 UnfinishedStubbingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45072078/
我已经 mock 了 couchbase 类,例如 @Mock CouchBaseRepository couchBaseRepository; 并尝试使用它: boolean ifExists =
您好,我有这个 PowerMockito 测试,它会抛出 UnfinishedStubbingException @RunWith(PowerMockRunner.class) @PrepareFor
测试代码为: import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; i
@MockBean private RestTemplateBuilder restTemplateBuilder; @MockBean private RestTemplate restTempla
我是 Mockito 的新手,我曾尝试调查此异常,但我还没有找到具体的答案。当我一起使用两个模拟时,它会发生在我的代码中,这意味着我通过一个模拟的构造函数,另一个模拟。像这样: ... Operati
我已经阅读了很多有关此错误的内容,但找不到解决方案。 这是我的示例代码,您可以复制它并启动它以重现错误。 主类: package example; import org.junit.runner.Ru
我想在我的发票类中 stub 方法generateReferenceNumber(): public class Invoice { private String id; privat
我正在尝试模拟一个客户端响应不佳的服务进行测试。我仍然在 min eclass 中收到 UnfinishedStubbingException 而不是 ClientResponseFailure,而且
当另一个方法中的 spyAnotherService.getUrl(ID) 时,我试图进行 spy /模拟并返回一个虚拟 Url,该方法是 myService.deleteSomething(name
您好,我正在尝试使用 Mockito 测试方法并收到 UnfinishedStubbingException。我是 Mockito 的新手,不确定我是否在做一些了不起的事情:) 这些是我的 stub
我想测试一个内部使用静态方法的方法,这就是我使用 PowerMockito 的原因。我想模拟对 Request.Get 的调用来自 Http 客户端 Fluent API。我设置了一个简单的测试,但出
好吧,我显然不太明白 doReturn(...).when(...) 和 when(...).thenReturn(...) 之间的区别。 问题是,当我上课时,我用 @Mock 注释模拟,并在我想测试
我可以将模拟对象作为参数传递给 thenThrow() 方法吗?我有这样的东西: public class MyException extends Exception { public MyE
尝试让 Mockito 和 PowerMock 正常运行,但在尝试运行此代码时遇到 UnfinishedStubbingException: @RunWith(PowerMockRunner.clas
我正在尝试使用 Mockito 的 Spy 部分模拟服务,覆盖一个方法以使其返回一致的数据以进行测试,但说 spy 无缘无故抛出 UnfinishedStubbingException。 这是我的测试
运行以下代码时,我收到错误消息 Unfinished Stubbing here detected: import static org.mockito.Mockito.mock; import st
我正在尝试verify在FileChooser上调用方法。 我在Groovy中编码,这似乎是问题所在。 我正在使用“孵化”的Mockito功能,该功能甚至可以模拟final类。 代码是: Fi
我有一个 LoggerInterceptor 类,其参数为 InspirationContext。对于这门课,我试图编写一个单元测试,但我被困在第一行: public class LoggerInte
以下代码导致 UnfinishedStubbingException PowerMockito.doNothing().when(widgetHelper).invokeAuditService(Ma
我写了下面的代码: @RunWith(PowerMockRunner.class) @PrepareForTest(Integer.class) public class TestClass{
我是一名优秀的程序员,十分优秀!