草庐IT

java - 为什么 Mockito 的 mock 在应该返回 null 时返回 0?

当有一些对象带有盒装类型属性时,该属性的getter返回0。但这应该返回null,因为装箱类型属性的默认值为null。这里有什么问题?classPerson{privateLongid;publicLonggetId(){returnid;}}...@MockPersonperson;...person.getId();//0insteadofnull 最佳答案 这只是在默认Mockito答案中为基本类型和包装类型选择的默认值。 关于java-为什么Mockito的mock在应该返回nu

java - Mockito:以复杂对象作为参数的 stub 方法

也许这是一个新手问题,但找不到答案。我需要用Mockitostub一个方法。如果该方法具有“简单”参数,那么我可以做到。例如,带有两个参数的find方法,汽车颜色和门数:when(carFinderMock.find(eq(Color.RED),anyInt())).thenReturn(Car1);when(carFinderMock.find(eq(Color.BLUE),anyInt())).thenReturn(Car2);when(carFinderMock.find(eq(Color.GREEN),eq(5))).thenReturn(Car3);问题是find参数是一个复

java - Mockito 吞下堆栈跟踪?

为什么Mockito会吞掉堆栈跟踪?例如,如果我有一个publicclassFoo{publicvoidfoo(){bar();}publicvoidbar(){baz();}publicvoidbaz(){thrownewRuntimeException();}}和一个测试,例如publicclassMockTest{@Testpublicvoidtest(){Mockito.spy(newFoo()).foo();}}抛出的异常总是这样java.lang.RuntimeExceptionatFoo.baz(Foo.java:17)atMockTest.test(MockTest.j

java - 无法使用 java 类实例化名为异常的 @InjectMocks 字段

我有一个带有用户定义构造函数的类。publicclassEmployee{@InjectprivateMyBeanmyBean;privateStringabcd;protectedEmployee(Parameter1param1,Parameter2param2){//someoperationsonmethodparams//someoperationonmybeanthis.abcd="somevalue";}protectedStringgetAbcd(){returnnrOfAccesses;}protectedvoidsetAbcd(Stringabcd){this.ab

java - 在测试中模拟 CompletionException

我有一个HttpClient类,它有一个返回CompletableFuture的函数:publicclassHttpClient{publicstaticCompletableFuturegetSize(){CompletableFuturefuture=ClientHelper.getResults().thenApply((searchResults)->{returnsearchResults.size();});returnfuture;}}然后另一个函数调用这个函数:publicclassCaller{publicstaticvoidcaller()throwsExcepti

java - 使用 Mockito.when() 和泛型类型推断的奇怪泛型边缘案例

我正在编写一个使用java.beans.PropertyDescriptor的测试用例使用Mockito,我想模拟getPropertyType()的行为返回任意Class对象(在我的例子中是String.class)。通常,我会通过调用来做到这一点://wealreadydidan"importstaticorg.mockito.Mockito.*"when(mockDescriptor.getPropertyType()).thenReturn(String.class);然而,奇怪的是,这无法编译:cannotfindsymbolmethodthenReturn(java.lan

java - 重置 Mockito spy

我有一个测试类(基于TestNG),我在其中使用Mockito.verify作为spy对象。这个有效:publicclassProgram{@SpyprivateTestObjecttestObject;@Testpublicvoidtest1(){testObject.makeSth();verify(testObject,only()).someMethodNeedToBeChecked();}}但是在这里:publicclassProgram{@SpyprivateTestObjecttestObject;@Testpublicvoidtest1(){testObject.mak

java - 如何用 Headers 模拟 HttpServletRequest?

我正在使用Mockito与JUnit测试应用程序。我需要将header添加到HttpServletRequestmock的同时。这是我第一次使用模拟概念来测试应用程序。我们如何在使用这个模拟概念时为请求对象设置header?应用代码@Produces({MediaType.APPLICATION_JSON})@Path("/devices")publicclassDvrRestService{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(DvrRestService.class);privateDvrMiddleServi

java - mockito 中的动态链接 "thenReturn"

我有一个Tuple模拟类,它的getString(0)和getString(1)方法预计会被调用n次。而不是写类似的东西,when(tuple.getString(0)).thenReturn(logEntries[0]).thenReturn(logEntries[1])...thenReturn(logEntries[n-1])我手动尝试了以下操作:OngoingStubbingstubbingGetStringZero=when(tuple.getString(0)).thenReturn(serviceRequestKey);OngoingStubbingstubbingGet

java - Mockito Matchers.any(...) 仅在一个参数上

我想这样做:verify(function,Mockito.times(1)).doSomething(argument1,Matchers.any(Argument2.class));其中argument1是类型Argument1的特定实例,argument2是类型Argument2的任何实例。但是我得到一个错误:org.mockito.exceptions.misusing.InvalidUseOfMatchersException:Invaliduseofargumentmatchers!2matchersexpected,1recorded.Thisexceptionmayoc