当前位置: 首页 > 知识库问答 >
问题:

Mockito和PowerMock:需要但未调用[重复]

方弘
2023-03-14

我知道其他人问过这个(或类似的)问题,但没有一个解决方案对我有帮助。我有3节课:

public class A {
    public int superMethod(int val) {
        B b = new B();
        return b.subMethod(val);
    }
}
public class B{
    public int subMethod(int num) {
        return num;
    }
}

我的测试类:

public class MockitoTest {
    @Mock
    B b;
    
    @InjectMocks
    A a;
    
    @Test
    public void testMethodA(){
        a = mock(A.class);
        doCallRealMethod().when(a).superMethod(anyInt());
        b = mock(B.class);
        try {
            whenNew(B.class).withAnyArguments().thenReturn(b);
        } catch (Exception e) {}
        
        a.superMethod(5);
        
        verify(b).subMethod(anyInt());
    }
}

我想验证B. subMethod()是否在A. superMethod()中被调用。我如何才能完成此任务。我知道我需要使用PowerMock来完成此任务,但我不确定如何。此外,我不允许更改有关A类或B类的任何内容。

任何帮助都将不胜感激!

共有1个答案

岳和泽
2023-03-14

我的问题是我的注释(或缺少注释)。我在MockitoTest类上缺少@PrepareForTest({A.class})注释。

 类似资料:
  • 我试图学习和,以实现我正在为一个已经工作的Android项目创建测试。但是我有一些麻烦。这会让你知道我想测试的活动: 这段代码所做的是获取Active会话,根据它的状态,它显示了不同的。现在我将向您展示测试类: 正如你所见,我在一个单独的java项目中使用了Robolectric和Mockito。当我运行测试类时,我得到以下信息: 你能帮我一下吗? 编辑 我去掉了ActivityControlle

  • 我实际上是在努力做下面的事情:我的服务类 这让我想要的没有被调用,实际上与这个模拟没有任何交互。你知道我做错了什么吗??

  • 我正在做一个单元测试,在我的应用程序中的类,它只是一个简单的类,我认为我做的一切都是正确的,但测试失败了,说: 需要但未调用:MContextWeakReference.Get();->在rahmat.com.app.utility.backwardcompatibility.StringResourceUtilTest.GetString(StringResourceUtilTest.java:

  • 晚安, 我正在对我的服务进行一些测试,在删除方法中执行测试时遇到了问题。 我想知道是否有人犯过这个错误,可以帮助我。 我扫描时出错。据报道,该方法没有使用。 例外情况: 代码:

  • 我在试着重构一些声纳上的假设。在重构之前,代码如下所示: 所以我把这些方法添加到一个映射中,并像这样调用它 我没有修改测试类中的任何内容,但我得到了以下错误: 被通缉但未被援引: - 但是揭穿它,它实际上是有效的,断言是正确的。原因可能是什么?

  • 我有如下测试方法: 是我要模拟并返回空映射的方法。但我收到的失败信息说 需要但未调用MyClass.MethodUsedInMethodBeingTest() .