gpt4 book ai didi

java - 异常 : mockito wanted but not invoked, 实际上与此模拟的交互为零

转载 作者:IT老高 更新时间:2023-10-28 20:29:13 38 4
gpt4 key购买 nike

我有界面

Interface MyInterface {
myMethodToBeVerified (String, String);
}

接口(interface)的实现是

class MyClassToBeTested implements MyInterface {
myMethodToBeVerified(String, String) {
…….
}
}

我还有一门课

class MyClass {
MyInterface myObj = new MyClassToBeTested();
public void abc(){
myObj.myMethodToBeVerified (new String(“a”), new String(“b”));
}
}

我正在尝试为 MyClass 编写 JUnit。我已经完成了

class MyClassTest {
MyClass myClass = new MyClass();

@Mock
MyInterface myInterface;

testAbc(){
myClass.abc();
verify(myInterface).myMethodToBeVerified(new String(“a”), new String(“b”));
}
}

但是我得到 mockito 想要但没有被调用,实际上在验证调用时与这个 mock 的交互为零

谁能提出一些解决方案。

最佳答案

您需要在您正在测试的类中注入(inject)模拟。目前,您正在与真实对象进行交互,而不是与模拟对象进行交互。您可以通过以下方式修复代码:

void testAbc(){
myClass.myObj = myInteface;
myClass.abc();
verify(myInterface).myMethodToBeVerified(new String("a"), new String("b"));
}

虽然将所有初始化代码提取到 @Before

中会是一个更明智的选择
@Before
void setUp(){
myClass = new myClass();
myClass.myObj = myInteface;
}

@Test
void testAbc(){
myClass.abc();
verify(myInterface).myMethodToBeVerified(new String("a"), new String("b"));
}

关于java - 异常 : mockito wanted but not invoked, 实际上与此模拟的交互为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551926/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com