使用 Mockito 存根并执行测试方法
我最近问了几个面向jUnit和Mockito的问题,我仍然在努力掌握它。这些教程都是针对非常简单的示例,因此我正在努力扩展我的测试用例以适用于我的类。
我目前正在尝试为 Web 应用中的某个代理中的方法编写一些测试用例。该方法与代理中的其他几个方法交互,以验证某些对象。我现在只想测试这一种方法。
以下是我试图做的事情:
-
创建我的代理的Mockito对象,如下所示:
MyProcessingAgent mockMyAgent = Mockito.mock(MyProcessingAgent.class);
-
使用 Mockito 设置存根(希望是正确的术语),如下所示:
Mockito.when(mockMyAgent.otherMethod(Mockito.any(arg1)).thenReturn(requiredReturnArg);
-
尝试像这样执行我的方法:
List myReturnValue = mockMyAgent.methodThatNeedsTestCase();
我本来以为在 中出现,但收到 0,所以我尝试调试。当我调用该方法时,它永远不会执行。我在方法的第一行有一个调试点,永远不会被触及。myReturnValue
如果我想在类的一个方法中执行代码,但强制类中的其他方法(尝试与外部世界的数据库交互的方法)返回伪造的值。这在Mockito上可能吗?
看来我目前的方法不是一种正确的测试风格,但我不知道如何前进。我是否可以模拟我的类并像往常一样执行一个方法,而其他方法则被存根以返回我的给定值,以便我在测试此方法期间不必处理数据访问?