什么是mockito,为什么它会干扰我的JUNIT测试



Mockito不断拦截我在DAO中创建的一个函数,并随机返回0。我希望函数能够实际运行。我在哪里可以配置这个mockito野兽,让它不用管函数?

调试器跳到这里,而不是进入我的春季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);
}

莫基托是什么?

MockIto(和我回答最初问题时的JMockIt)是模拟API,它们允许开发人员编写与应用程序的其他部分或其他外部资源(如数据库)隔离的测试。

为什么它搞砸了我的JUNIT测试?

正如那些编写测试的人一样,他们决定不希望这个测试进入数据库。所以他们用mockito来防止这种情况发生。

我在哪里可以配置这个mockito野兽,让它不用管函数?

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

最新更新