我正在使用Springboot和Mockito进行测试。
我想要模拟一个函数,她返回一个字符串。
public String replaceContent(String url, String replace, String value) {
return url.replace(replace, value);
}
public ResponseEntity<List<MonitorOperativeFront>> getOperativesMonitor(String userCode) {
log.info(" ---> LogInfo: start ");
String url = this.replaceContent(this.urlBase,this.stringReplace,userCode);
log.info(" ---> LogInfo: call to: " + url);
List<MonitorOperativeFront> list= null ;
MonitorOperative[] operative = this.restTemplate.getForObject(url, MonitorOperative[].class);
list.add(new MonitorOperativeFront(operative[0].getId()));
log.info(" ---> LogInfo: Success ");
return new ResponseEntity<>(list, HttpStatus.OK);
@Mock
Mockito mk;
@InjectMocks
MonitorServiceImpl monitorService;
@Test
public void testG() throws Exception {
String url = "prueba/test";
this.mk.when( monitorService.replaceContent("prueba/{id}", "{id}", "test"))
.thenReturn(url);
ResponseEntity<List<MonitorOperativeFront>> operative2 = monitorService.getOperativesMonitor("n11111");
assertEquals(true,true);
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
Mocking methods declared on non-public parent classes is not supported.
2. inside when() you don't call method on mock but on some other object.
@mock应该是具有您想要模拟的方法的类。如果你想模仿替换,你必须写
@Mock
MonitorServiceImpl monitorServiceMock;
@InjectMocks
SomeUserOfMonitorServiceImpl monitorServiceImplUser;
@Test
public void testG() throws Exception {
String url="http://dsgdfgdf/"
Mockito.when( monitorServiceMock.replaceContent("prueba/{id}", "{id}", "test"))
.thenReturn(url));
//Do Something which calls the monitorService.replaceContent
monitorServiceImplUser.doSomething();
问题内容: 我目前正在使用Java中的SQL。最近我收到此错误: 当我在连接字符串中添加参数时,会发生这种情况。该错误消息清楚地表明缺少sqljdbc_auth.dll,因此我尝试将dll放在与保留sqljdbc4.jar相同的路径中。 但是,这行不通,所以我想知道如何将这个dll添加到构建路径中?有特殊的方法吗? 问题答案: 好的,我发现了!我并不需要更改java.library.path,而是
问题内容: 在从openni编译演示时,我偶然发现了此错误: 我在Mac上执行此操作。我最好的猜测是该文件不在我的java.library.path中 我现在的问题是:这个猜测正确吗,以及如何在netbeans中添加到java.library.path中。 提前Thx 问题答案: 将此添加到projects属性的VM选项中:-Djava.library.path = / Users / olivi
问题内容: 我使用以下命令在Ubuntu 12.04上安装了一个名为RYU的openflow控制器: 我试图使用ryu-manager运行python文件,如下所示。 然后我尝试使用以下方法安装gevent: 此错误的原因是什么?我试图找到使用,但没有成功。但是的输出是 系统上应该有吗?如果是这样,我应该安装什么来获得它? 问题答案: 应该这样做: 它将安装所有缺少的标题。这对我帮助很大。
当尝试在glassfish 4.0(使用netbeans 7.3.1)中部署一个mavenized entreprise应用程序(包括war和jar项目)时,我遇到了与该问题类似的问题,即jar无效,因为它包含零ejb(这不是真的,因为我的应用程序jar包含4个实体类及其相应的会话bean和本地接口)。由于那篇文章中的解决方案是添加ejb-jar.xml,所以我也添加了我的部署描述符,编写如下:
当我使用创建一个新的虚拟环境时,它会按照预期使用创建虚拟环境,但缺少: 到底是怎么回事?不应该有一个二进制文件吗?
我想制作一个使用JavaFX GUI的应用程序。我在一篇堆栈溢出文章中读到,这些包应该集成在OpenJDK(JavaFX和OpenJDK)中。因此,我设置了OpenJDK13(jdk13下载页面),但找不到需要导入的包。例如:我找不到类。 它位于哪里?我需要下载其他东西吗? 我在我的问题中特别解释了我所期望的,因为我以前在普通JDK中使用JavaFX。由于OpenJDK不是这种情况,我询问如何正确