草庐IT

java - 条件满足时如何忽略单元测试?

我想知道是否有注释或方法仅在满足前条件时才执行测试?我遇到的情况是,在满足特定日期之前,某些测试是相关的。我使用JUnit、Mockito。谢谢 最佳答案 您可以使用Assume来做到这一点。在下面显示的示例中,我想检查状态以防precondition==true并且我想断言在precondition==false的情况下抛出异常.@TestpublicfinalvoidtestExecute()throwsInvalidSyntaxException{Assume.assumeTrue(precondition);//Furthe

java - Spring jdbcTemplate单​​元测试

我是Spring的新手,只是对JUnit和Mockito有一些经验我有以下需要单元测试的方法publicstaticStringgetUserNames(finalStringuserName{Listresults=newLinkedList();results=service.getJdbcTemplate().query("SELECTUSERNAMEFROMUSERNAMESWHERENAME=?",newRowMapper(){@OverridepublicStringmapRow(ResultSetrs,introwNum)throwsSQLException{return

java - 计算间接方法调用 Mockito

我在使用Mockito计算方法调用时遇到问题。问题是我想计算调用次数的方法是由其他方法在测试类中间接调用的。这是代码:publicclassClassForTest{privateIntegervalue;publicvoiddoSmth(){prepareValue("Firstcall");prepareValue("Secondcall");prepareValue("Thirdcall");System.out.println(value);}protectedvoidprepareValue(Stringmsg){System.out.println("Thisismessa

java - 编写 JUnit 时如何绕过 Runtime.getRuntime()?

我有一个类,其中Runtime.getRuntime()用于从命令行执行脚本并获取结果以进行进一步处理。但是当我为这个类编写JUnit时,我找不到一种方法来模拟/避免这个Runtime.getRuntime().exec()。我不能使用EasyMock或PowerMock或除Mockito之外的任何其他模拟api。请给我一个克服这个问题的方法,因为这会影响代码覆盖率。 最佳答案 你必须重构。将Runtime.getRuntime().exec()提取到一个单独的类中:publicclassShell{publicProcessexe

java - Mockito:方法的返回值取决于调用的其他方法

在我的单元测试中,我需要模拟一个接口(interface),在不同的方法中有nextItem()和isEmpty()方法:publicinterfaceMyQueue{ItemnextItem();booleanisEmpty();//othermethods...}我对模拟的要求是isEmpty()最初应该返回false,但是在调用nextItem()之后isEmpty()应该返回真。因此,我正在用一个项目模拟一个队列。用mockito实现这种模拟的最简单方法是什么?我能否实现额外的要求:调用nextItem()第二次、第三次等等会导致特定类型的异常?附言我不想为测试提供我的接口(i

java - org.mockito.exceptions.misusing.InvalidUseOfMatchersException :

我在服务和测试类中的方法:publicvoidupdateSubModuleOrder(Long[]data,LongmoduleSysId,LonguserId){try{for(inti=0;i我得到的错误是FAILED:testupdateSubModuleOrderorg.mockito.exceptions.misusing.InvalidUseOfMatchersException:Invaliduseofargumentmatchers!2matchersexpected,1recorded:->atcom.TestUserModuleServiceImpl.testup

java - Mockito 在简单测试中抛出 OutOfMemoryError

我尝试使用Mockito来模拟数据库池(仅用于检索数据),但是在运行性能测试时会在一段时间内检索许多模拟连接,它会耗尽内存。这是一个简化的自包含代码,它在我的机器上大约150,000次循环迭代后抛出一个OutOfMemoryError(尽管似乎没有任何东西被全局保存,而且一切都应该是垃圾回收的)。我做错了什么?importstaticorg.mockito.Mockito.when;importjava.sql.Connection;importorg.mockito.Mock;importorg.mockito.MockitoAnnotations;publicclassTest1{

java - 使用 Spring 和 Mockito 测试 RabbitMQ

尝试让SpringJUnit运行器使用RabbitTemplate运行测试,并向监听器注入(inject)Mockitostub服务类。尝试验证与Mock的交互。通过我见过的例子,我认为这是可能的。RabbitMQ正在运行。登录仪表板时,我可以在那里看到消息。也能够使用独立控制台应用程序使用消息。@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:/spring/servlet-context.xml","classpath:/spring/root-context.xml

java - 带有 Java 异步-> 同步转换器的 Mockito

我有一个异步方法,我正在使用倒计时锁存器将其转换为同步方法。我在不使用mockito的超时功能的情况下努力编写单元测试。我不知道如何让验证方法等待异步方法调用:publicinterfaceSyncExchangeService{booleanplaceOrder(Orderorder);}publicinterfaceExchangeService{voidplaceOrder(Orderorder,OrderCallbackorderResponseCallback);}publicinterfaceOrderCallback{publicvoidonSuccess();publi

java - 如何在静态方法上使用 Mockito.verify()?

我正在研究Junit和Mockito。在我的项目中,我有一个SocialDataAccessController,其代码如下所示:publicclassSocialDataAccessControllerimplementsController{privateSocialAuthServiceProvidersocialAuthServiceProvider;@OverridepublicModelAndViewhandleRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{Stri