草庐IT

java - 为什么 thenCallRealMethod() 在这里丢失参数?

我有以下代码:when(mockedOperation.getResult(anyDouble(),anyDouble())).thenCallRealMethod();when(mockedOperation.division(anyDouble(),not(eq(0d)))).thenCallRealMethod();其中Operation类似于Command模式-它封装了一些具体操作,在本例中为简化的-除法操作。结果检索不是直接发生的,而是通过契约方法发生的,比如getResult(arg1,arg2)。所以,我调用mockedOperation.division(10d,3d)

java - Mockito 和 HttpServletResponse - 将输出写入文本文件

我想使用mockito测试我的servlet。我也想知道服务器输出是什么。所以如果servlet写出这样的东西:HttpServletResponse.getWriter().println("xyz");我想改为将其写入文本文件。我为HttpServletResponse创建了模拟,并告诉Mockito如果调用HttpServletResponse.getWriter()它应该返回我的自定义PrintWriter:HttpServletResponseresp=mock(HttpServletResponse.class);PrintWriterwriter=newPrintWrit

java - 如何在单元测试中模拟 JPA 存储库的保存方法

比如我在UserService中有这个方法:@Override@TransactionalpublicUserDtocreate(UserDtouserDto){UserdbUser=userRepository.findOne(userDto.getId());if(dbUser!=null){thrownewAuthException(AuthException.ErrorCode.DUPLICATE_USER_EXCEPTION);}UseroneByLogin=userRepository.findOneByLogin(userDto.getLogin());if(oneByL

java - NotAMockException 而 Mockito.verify(Object,VerificationMode.atleast(2))

我正在使用Mockito模拟单元测试用例,并且正在获取以下异常(exception)org.mockito.exceptions.misusing.NotAMockException:Argumentpassedtoverify()isoftypeConsumerImplandisnotamock!Makesureyouplacetheparenthesiscorrectly!Seetheexamplesofcorrectverifications:verify(mock).someMethod();verify(mock,times(10)).someMethod();verify(

java - mockito:如何在 java 8 中匹配可变参数?

我正在努力将一个项目从Java7迁移到Java8,并且在Mockito的“when”情况下遇到编译错误,我很难追踪:when(queryRunner.query(any(String.class),any(ResultSetHandler.class),anyVararg())).thenReturn(mockedWordResultList);给我一​​个编译错误:java:referencetoqueryisambiguousbothmethodquery(java.lang.String,java.lang.Object,org.apache.commons.dbutils.Re

java - 将 mockito 与通配符参数一起使用

我正在尝试将通配符传递给mockitoany()方法。这是方法selectGatewayInfoConfig(Operationo)我想做的是:when(gatewayConfigSelector.selectGatewayInfoConfig(any(**!!!!!!HEREINEEDTHISWILDCARD!!!!**));.thenReturn(...something...);提前致谢。 最佳答案 怎么样?when(gatewayConfigSelector.selectGatewayInfoConfig(any(Opera

java - 从 scala 调用重载的 java 泛型方法

我正在使用Mockito通过返回未参数化ArrayList的方法来模拟对象,但我不知道如何让它工作要模拟的方法签名publicjava.util.ArrayListgetX()测试代码varmockee=mock(classOf[Mockee])when(mockee.getX).thenReturn(Lists.newArrayList(x):ArrayList[_])这实际上在IntelliJ中编译得很好,但在运行时抛出:[error]....scala:89:overloadedmethodvaluethenReturnwithalternatives:[error](java.

java - 测试 void 方法的行为

假设我有以下服务对象publicclassUserService{@AutowiredprivateUserDaodao;publicvoidaddUser(Stringusername,Stringpassword){if(username.length()我想测试“addUser”方法在用户名长度小于8和用户名大于8个字符时的行为。如何在单元测试UserService.addUser(...)方法中进行验证?我知道使用assert(),但是值“password”在addUser(...)方法之外不可用。我使用JUnit和Mockito。 最佳答案

java - 如何在不调用原始方法本身的情况下在 mockito 中设置对模拟对象方法的调用

模拟版本:1.9.0我想在mockito中设置对模拟对象方法的调用,而不调用原始方法本身:编辑:此示例实际上按预期工作,即未执行的主体方法“test()”。然而,经过进一步调查,我注意到原始方法具有默认的可见性修饰符,我怀疑这会导致问题,因为在将其更改为public后(这不应该是一样的吗?!)它按预期工作。例如publicclassTestClass{publicStringtest(){System.out.println("testcalled!");return"test";}}//intestTestClassmock=mock(TestClass.class);when(mo

java - 用于 Spring Web 服务调用的 Mockito 模式

我的被测类有这个方法publicSomeWebServiceResponsecallDownstream(SomeWebServiceRequestrequest){return(SomeWebServiceResponse)super.callService(request);}super方法只是调用SpringWS来进行调用-简化形式response=getWebServiceTemplate().marshalSendAndReceive(this.getBaseURL(),request);returnresponse;当我编写单元测试时,它试图进行实际的Web服务调用。我不清