草庐IT

DexMaker-Mockito

全部标签

java - Mockito + spy : How to gather return values

我有一个类使用工厂来创建一些对象。在我的单元测试中,我想访问工厂的返回值。由于工厂直接传递给类并且没有为创建的对象提供getter,我需要拦截从工厂返回的对象。RealFactoryfactory=newRealFactory();RealFactoryspy=spy(factory);TestedClasstestedClass=newTestedClass(factory);//AtthispointIwouldliketogetareferencetotheobjectcreated//andreturnedbythefactory.是否有可能访问工厂的返回值?可能使用spy?我

java - Mockito:一个类的所有实例的模拟实例方法

我试图stub一个特定类的实例方法,这样当这个Foo类的任何实例调用这个实例方法doSomething时,相同的object被返回(见下面的代码)。但是,mockito不允许在验证或stub之外使用任何匹配器。Barobject=newBar();given(any(Foo.class).doSomething(Arg.class)).willReturn(object);在Foo.class中:BardoSomething(Argparam){Barbar=newBar();//Dosomethingwithbarreturnbar;}我可以用Mockito实现这个目标吗?谢谢!

java - 如何更改 Mockito 中字符串的默认返回值?

Thisissuefrom2010hintsatwhatI'mtryingtodo.我正在进行单元测试,该单元测试需要许多模拟对象来完成它需要做的事情(测试HTML+PDF呈现)。为了使此测试成功,我需要生成许多模拟对象,并且这些对象中的每一个最终都会将一些字符串数据返回到被测试的代码。我认为我可以通过实现我自己的Answer类或IMockitoConfiguration来做到这一点,但我不确定如何实现这些它们只影响返回字符串的方法。感觉下面的代码已经很接近我想要的了。它抛出一个转换异常,java.lang.ClassCastException:java.lang.Stringcann

java - Mockito 验证 spy 对象方法的返回

我知道您可以验证被侦测对象的方法被调用的时间。你能验证方法调用的结果吗?类似下面的内容?verify(spiedObject,didReturn(true)).doSomething(); 最佳答案 要验证它被调用的次数,请使用verify(spiedObject,times(x)).doSomething()。您不应该验证从spy对象返回的值。它不是被测对象,所以为什么要验证它返回的内容。而是验证被测对象的行为以响应从spy返回的值。此外,如果您不知道被侦测对象将返回什么值,最好使用模拟而不是spy。

java - Mockito - stub 由模拟对象方法返回的对象的方法

假设我有一个模拟对象,我不想stub它的任何方法,但我想stub它返回的对象的方法。例如,when(mockObject.method1()).thenReturn(returnValue)这是通常的做法,但我正在寻找,when(mockObject.method1().method2()).thenReturn(returnValue)这可能吗?如果我这样做,我会得到一个NullPointerException。目前我stub第一个方法来返回模拟对象,然后使用返回的模拟对象stub第二个方法。但是,这些临时模拟对象对我来说毫无用处,在将许多方法链接在一起之后,会产生很多无用的模拟对象

java - Mockito绕过静态方法进行测试

我需要使用Mockito测试handleIn()方法。但是,代码需要调用此遗留代码Util.getContextPDO,这是一个静态方法。请注意,在测试环境中,此Util.getContextPDO始终返回异常,我打算通过始终返回一个虚拟IPDO来绕过此Util.getContextPDO()。publicclassMyClass{publicIPDOgetIPDO(){returnUtil.getContextPDO();//notethatUtil.getContextPDO()isastatic,notmockable.}publicStringhandleIn(Objectin

java - Mockito,带有检查异常的void方法

我想知道为什么我需要处理异常,当我模拟一个抛出异常的void方法时。例如publicclassMyObject{publicvoidcall()throwsSomeException{//dosomething}}现在当我这样做的时候,@MockMyObjectmyObject;doNothing().when(myObject).call()它导致编译错误说"error:unreportedexceptionSomeException;mustbecaughtordeclaredtobethrown"我想知道,为什么我需要为本身被模拟的方法处理异常。 最佳

java - 什么是 Mockito 等价于 expect().andReturn().times()

我一直在试验Mockito的等价物EasyMock.expect(someMethod()).andReturn(someMockObject).times(n);但我想不通。请提供一点帮助,好吗?提前致谢。 最佳答案 when(myObject.someMethod()).thenReturn(someMockObject);//runtestverify(myObject,times(n)).someMethod();参见documentation获取更多转换示例。 关于java-什

java - Mockito - "Wanted but not invoked; However there were other interactions with this mock"错误

我正在验证是否使用Mockito调用了一个函数,但Mockito告诉我我正在验证的函数从未被调用过,并且调用了其他函数。但在我看来,我正在调用正确的函数......这是我遇到的错误的堆栈跟踪:Wantedbutnotinvoked:relationshipAutoIndexer.getAutoIndex();->atorg.whispercomm.manes.server.graph.DataServiceImplTest.testInitIndices(DataServiceImplTest.java:117)However,therewereotherinteractionswit

java - Mockito 错误不适用于参数(无效)

Mockito抛出错误"Themethodwhen(T)inthetypeStubberisnotapplicableforthearguments(void)"对于我正在模拟的类,无法弄清楚原因。有问题的代码是:Mockito.when(mockObject.myMethod(Mockito.any(MyExecutionContext.class))).thenReturn(value);我知道有人问过类似的问题,但如果有人可以为此解释解决方案或指出正确的方向,我将不胜感激 最佳答案 解决方法:Mockito.doReturn(