import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.spy;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
class MyClass {
public int method1(){
int x =10;
x = method2(2);
return x;
}
public int method2(int y){
method3();
return 20;
}
public int method3(){
return 30;
}
}
@RunWith(MockitoJUnitRunner.class)
public class Method1Test {
private MyClass myClass = new MyClass();
@Before
public void setup(){}
@Test
public void test01(){
MyClass spyMyClass = spy(myClass);
doReturn(28).when(spyMyClass).method2(any());
int a = spyMyClass.method1();
assertTrue("We did it!!!",a==20);
}
}
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Misplaced argument matcher detected here:
-> at com.Method1Test.test01(Method1Test.java:45)
请有人帮助我在上面,也提供我的解决上述问题。
该问题是由传递给method2
的参数的类型不匹配引起的。这就是异常消息的这一部分告诉您的:
org.mockito.exceptions.misusing.invaliduseofmatchersexception:在此处检测到错误的参数匹配器:
通过以下测试:
@Test
public void test01(){
MyClass spyMyClass = spy(myClass);
doReturn(28).when(spyMyClass).method2(anyInt());
int a = spyMyClass.method1();
assertTrue("We did it!!!",a==28);
}
我使用的是Mockito1.9.0。我想在JUnit测试中模拟类的单个方法的行为,因此 问题是,在第二行中,实际上是被调用的,导致了一个异常。我使用模拟的唯一原因是,以后每当调用时,将不会调用真正的方法,而返回对象。 是接口,是接口的实现(如果这很重要的话)。 我需要做些什么来纠正这种间谍行为?
好的,我有一个网页,为用户提供了一些步骤,还有一个mixin,它处理这些步骤的属性和逻辑,比如当前/下一步的值,检查用户从每个步骤前进到下一个步骤,等等。 现在我必须添加一个新的功能,只有在某个步骤之后才能执行,所以我想能够做的是调用原始的mixin方法,用户每次进入下一步添加此功能时都会调用该方法。 更清楚地说,在webapp的许多页面中使用了混合方法,所以我想覆盖扩展它的组件中的罪魁祸首混合方
JavaScript 允许我们像使用对象一样使用原始类型(字符串,数字等)。JavaScript 还提供了这样的调用方法。我们很快就会学习它们,但是首先我们将了解它的工作原理,毕竟原始类型不是对象(在这里我们会分析地更加清楚)。 我们来看看原始类型和对象之间的关键区别。 一个原始值: 是原始类型中的一种值。 在 JavaScript 中有 7 种原始类型:string,number,bigint,
问题内容: 如果重写了JavaScript中的原型方法,则可以调用该基础方法吗? 问题答案: 我不明白您到底想做什么,但是通常按照以下方式完成特定于对象的行为:
我尝试删除方法改造与原始json对象使用删除我的列表项。我曾经使用POST方法与原始方法它成功了,但我需要相同的@DELETE方法。 我需要这种类型的DELETE方法,使用这种url类型的原始对象 API/跟踪/删除/{user_id} 我试着用 我把我的json