什么是mockito,为什么它与我的JUNIT测试搞砸了?

时间:2012-03-19 15:12:47

标签: java spring junit mockito

Mockito继续拦截我在DAO中创建的函数并随机返回0.我希望该函数能够实际运行。我在哪里可以配置这个mockito野兽单独留下这个功能?

调试器跳到这里而不是进入我的spring dao:

 public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy)
        throws Throwable {
    if (objectMethodsGuru.isEqualsMethod(method)) {
        return proxy == args[0];
    } else if (objectMethodsGuru.isHashCodeMethod(method)) {
        return hashCodeForMock(proxy);
    }

    MockitoMethodProxy mockitoMethodProxy = createMockitoMethodProxy(methodProxy);
    cglibHacker.setMockitoNamingPolicy(mockitoMethodProxy);

    MockitoMethod mockitoMethod = createMockitoMethod(method);

    FilteredCGLIBProxyRealMethod realMethod = new FilteredCGLIBProxyRealMethod(mockitoMethodProxy);
    Invocation invocation = new Invocation(proxy, mockitoMethod, args, SequenceNumber.next(), realMethod);
    return handler.handle(invocation);
}

1 个答案:

答案 0 :(得分:6)

  

什么是mockito?

MockIto(以及JMockIt因为我接受了原始问题)是模拟API,它们允许开发人员编写与应用程序的其余部分或其他外部资源(例如数据库)隔离的测试)。

  

为什么要搞砸我的JUNIT测试?

谁曾经写过测试,他们决定不想让这个测试打到数据库。因此,他们使用mockito来防止这种情况发生。

  

我可以在哪里配置这个mockito野兽单独留下这个功能?

找到编写此测试的开发人员(或您基于当前测试的测试)。与他们一起理解模拟框架。