使用MockitToRunner运行的powermock-获取匹配器错误

时间:2018-09-03 14:31:46

标签: powermockito

@RunWith(MockitoJUnitRunner.class)
public class MessageDataTest {
@InjectMocks
MessageData messageData;

@Test
  public void testingMethod() throws Exception {

        MessageData data = PowerMockito.spy(messageData);  //passing the mocked object for spy
        PowerMockito.when(data,"isMessageContains",anyString(),any()).thenReturn(true);  // throwing exception here
        MessageDataResponse response = messageFormatterData.constructData(messageItems);  
        assertNotNull(response);
    }
    }

MessageData.java

    private boolean isMessageContains(String name, MessageResponse messageResponse) {

        for (::) {
            some logic
                return true;
            }
        }

        return false;
    }

运行测试用例时,出现以下错误,

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:在此处检测到放错位置的参数匹配器 您不能在验证或存根之外使用参数匹配器。正确使用参数匹配器的示例:when(mock.get(anyInt()))。thenReturn(null); doThrow(new RuntimeException())。when(mock).someVoidMethod(anyObject()); verify(mock).someMethod(contains(“ foo”)) 另外,可能会出现此错误,因为您将参数匹配器与无法模拟的方法一起使用。以下方法不能存根/验证:final / private / equals()/ hashCode()。不支持在非公共父类上声明的模拟方法

我想模拟这个私有的“ isMessageContains”以返回始终为真。

0 个答案:

没有答案