2012-03-19 83 views
-1

Mockito不断拦截我在DAO中创建的函数并随机返回0.我希望函数能够真正运行。我在哪里可以配置这个mockito野兽来离开这个功能?什么是mockito,为什么它与我的JUNIT测试搞砸了?

调试器跳到这里,而不是进入我的春道:

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); 
} 
+0

欢迎您好笑,但首先请确保正确提出问题。我们需要查看测试方法,测试方法和执行结果(如果有的话)。当然,删除任何可能暴露业务逻辑的东西。 – 2012-03-19 15:17:07

+0

该方法只是查询数据库,就像dao类中的任何其他方法。我的测试方法正在运行其他人对某个函数进行的Junit测试,该函数调用了mockit拦截的函数。我只想知道mockit是什么以及它从哪里配置。我不知道要添加什么代码,因为我不知道mockit是如何工作的以及在哪里配置的。 – ollo 2012-03-19 15:22:56

+0

其实从看到代码我认为你正面临Mockito,http://code.google.com/p/mockito/,这是最好的Java嘲笑框架之一。我建议你学会爱它,因为它可以使你的生活(和你的测试)方式easiert。 – pushy 2012-03-19 16:42:04

回答

6

是什么的Mockito?

MockIto(和JMockIt因为我把原来的问题)都是假的API,它们允许开发人员编写这是从应用程序或其他外部资源的其余部分隔离(如数据库)的测试。

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

由于谁曾经写过测试,他们不希望这个测试打到数据库。所以他们用mockito来防止这种情况发生。

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

找到编写此测试的开发人员(或测试您正在进行当前测试)。与他们一起理解嘲笑框架。

+0

*“和JMockIt作为最初询问的问题”* OP写了“mockit”并且代码使用“mockito”,那么为什么您认为OP询问了“jmockit”?我在这里错过什么? – Tom 2016-09-19 12:03:56

相关问题