草庐IT

DexMaker-Mockito

全部标签

java - 使用 Mockito 模拟另一个类中的类方法

我正在尝试使用Mockito/JUnit为这样的函数编写单元测试:class1{method{object1=class2.method//methodthatIwanttofakethereturnvalue//somecodethatIstillwanttorun}}在Mockito中有什么方法可以stubclass2.method的结果吗?我正在尝试提高class1的代码覆盖率,因此我需要调用其真正的生产方法。我查看了MockitoAPI的spy方法,但这会覆盖整个方法,而不是我想要的部分。 最佳答案 我想我理解你的问题。让我

java - Mockito:如何模拟 JodaTime 的界面

我使用JodaTime#DateTime,我需要模拟它的行为。由于无法直接模拟JodaTime#DateTime,因此我创建了一个接口(interface)时钟.javapublicinterfaceClock{DateTimegetCurrentDateTimeEST();DateTimegetFourPM_EST();DateTimegetSevenPM_EST();}JodaTime.javapublicclassJodaTimeimplementsClock{@OverridepublicDateTimegetCurrentDateTimeEST(){returnnewDate

java - Mockito ArgumentMatcher 说参数不同

我正在使用Mockito进行单元测试,我正在使用ArgumentMatcher检查参数的特定字段是否具有特定值。我有一个StatusMatcher类,它扩展了ArgumentMatcher并检查MyClass类的对象是否在状态字段中具有特定值。我在测试中调用它的方式是:verify(myDAO,times(1)).update(argThat(newStatusMatcher("SomeStatus")));这里update是被一些MyClass对象调用的DAO方法。我想看看它是否具有正确的状态。这是我得到的:Argument(s)aredifferent!Wanted:myDAO.u

java - mockito 是否具有与 jMock 的状态等效的成语?

GrowingObjectOrientedSoftware一书在jMock中给出了几个示例,其中状态是显式的,而不是通过API公开它。我真的喜欢这个主意。有没有办法在Mockito中做到这一点?这是书中的一个例子publicclassSniperLauncherTest{privatefinalStatesauctionState=context.states("auctionstate").startsAs("notjoined");@TestpublicvoidaddsNewSniperToCollectorAndThenJoinsAuction(){finalStringitem

java - Mockito:多次调用同一个方法

我正在用Mockito模拟一个对象,这个对象上的同一个方法被多次调用,我想每次都返回相同的值。这是我的:LogEntryentry=null;//thisisafield//Thismethodiscalledonceonly.when(mockLogger.createNewLogEntry()).thenAnswer(newAnswer(){@OverridepublicLogEntryanswer(InvocationOnMockinvocationOnMock)throwsThrowable{entry=newLogEntry();returnentry;}});//Thism

java - 使用 Mockito 检查多个参数的一致性

我正在使用Mockito模拟一个类,该类具有如下所示的方法:setFoo(intoffset,float[]floats)我希望能够验证数组(floats)中的值是否与预期值数组中的值相等(在给定的公差范围内)。要注意的是,我想从offset指定的位置开始检查floats的内容。出于测试目的,我不知道/不关心偏移量是多少,只要它指向我期望的值即可。我也不关心数组的其余部分包含什么。我只关心从提供的偏移量开始的值。我该怎么做? 最佳答案 虽然部分模拟不是一个坏主意,但如果您使用ArgumentCaptor,您可能会发现您的代码更易于理

java - Mockito:你如何验证某些方法调用组的组顺序?

我正在使用Mockito通过InOrder对象验证方法调用的顺序。但我对调用的总顺序不感兴趣,只对某组方法调用全部发生在调用其他一些方法之前感兴趣。比如像这样@TestpublicvoidtestGroupOrder(){Foofoo1=mock(Foo.class);Foofoo2=mock(Foo.class);BarunderTest=newBar();underTest.addFoo(foo1);underTest.addFoo(foo2);underTest.fire()InOrderinOrder=inOrder(foo1,foo2);inorder.verify(foo1

java - Mockito anyMapOf 嵌套泛型

我正在尝试验证是否调用了具有以下签名的方法:publicvoidprocess(Map>data){...}嵌套的参数化Set给我带来了困难。我可以像这样使用any()匹配器正确验证它:verify(dataProcessor).process(Matchers.>>any());如Mockito:Verifyingwithgenericparameters中所述尽管令人讨厌的是,如果我直接静态导入Matchers.any并将其称为:verify(dataProcessor).process(>>any())但是在这种情况下,anyMapOf(clazz,clazz)似乎是更合适的匹配

java - 方法不起作用时的 Mockito

我正在使用mockito作为模拟框架。我这里有一个场景,我的when(abc.method()).thenReturn(value)没有返回值,而是返回null。publicclassDQExecWorkflowServiceImplTest{@InjectMocksDQExecWorkflowServiceImpldqExecWorkflowServiceImpl=newDQExecWorkflowServiceImpl();@MockprivateDQUtilitydqUtility;@MockprivateDqExecdqExec;@MockprivateDqCntlDefndq

java - Mockito ClassCastException - 无法转换模拟

我想测试AppleProcessor类中的一个方法:publicvoidprocess(Fruitfruit){if(fruit.getType()==Fruit.APPLE){fruitBasket.add(((AppleFruit)fruit).getApple());}else{//dosomethingelse}}请注意,Fruit是一个接口(interface),其中包含AppleFruit实现的getType()方法,并且还有一个getApple()方法。我的测试看起来像:@MockFruitBasketfruitBasket;@MockFruitfruit;@MockAp