Mockito静态函数mock



我有一个类:

class Abc
{
    public static int fun() {
           // some stuff
           return 5;
    }
}

我还有另一门课:

class Pqr 
{
     public int funToTest() {
            return Abc.fun();
     }
}

我使用mockito测试如下:

class PqrTest {
    public int testFunToTest() {
          Abc ob = Mockito.mock(Abc.class);
          Mockito.when(ob.fun()).thenReturn(12);   
    }
}

现在像这样的测试效果很好。但由于fun()是一个静态方法,我认为不应该通过对象调用它。如果不使用mockito调用fun()方法的实际实现,我怎么能返回12呢。此外,我不想像上面所做的那样,通过Abc类的mock对象调用fun()。

使用PowerMock等工具可以实现您想要实现的目标。

同时,当您从测试的角度来看代码时,您应该意识到有些代码是"错误的"。如果是这种情况,那么正确的方法是更改代码,直到它可以轻松测试为止。大多数时候,你会发现代码会因为这个变化而变得"更好":更少的bug,更容易理解&维护,更易于使用。

相关内容

  • 没有找到相关文章

最新更新