相关疑难解决方法(0)

在同一个模拟上使用多个ArgumentMatchers

我试图在Mock上使用Mockito:
当使用argument1调用Mock.someMethod(..)时 - >返回result1
当使用argument2调用Mock.someMethod(..)时 - >返回result2
当Mock.someMethod使用argument3 - > return result3调用(..)

    when(mock.method(Matchers.argThat(new MyMatcher1() {

        @Override
        public boolean matches(Object arg0) {
                   // comparision logic
        }
    }))).thenReturn(result1);

    when(mock.method(Matchers.argThat(new MyMatcher2() {

        @Override
        public boolean matches(Object arg0) {
                   // comparision logic
        }
    }))).thenReturn(result2);

    when(mock.method(Matchers.argThat(new MyMatcher3() {

        @Override
        public boolean matches(Object arg0) {
                   // comparision logic
        }
    }))).thenReturn(result3);
Run Code Online (Sandbox Code Playgroud)

但是Mockito正确地存储了第一个,但是在第二个上它会抛出NullPointer异常,因为它出于某种原因试图运行带有null agrument的Matcher.我不确定它是否得到支持.

如果这不是正确的方法,如何用Mockito实现这一目标?谢谢.

java mockito

13
推荐指数
2
解决办法
3042
查看次数

标签 统计

java ×1

mockito ×1