草庐IT

Easymock

全部标签

spring - 使用 Junit 和 EasyMock 对具有 Autowiring 符号的类进行单元测试?

我正在尝试为一个有几个字段标记为@Autowired的类编写单元测试。鉴于Spring会自动解析这些字段的具体实现这一事实,我很难弄清楚如何在测试运行期间将我的Mock对象(通过EasyMock创建)作为依赖项插入。在类中使用@Autowired意味着该类中缺少setter。有没有办法让我插入我的模拟对象而不在类中创建额外的setter?这是我想要完成的一个示例:publicclassSomeClassUnderTestimplementsSomeOtherClass{@AutowiredprivateSomeTypesomeType;@AutowiredprivateSomeOthe

java - Powermock(使用 Easymock)没有最后一次调用可用的模拟

我正在尝试运行一个简单的测试用例。我有以下方法。publicstaticvoidrun(String[]args)throwsThrowable{CommandLineArgumentsopts=CommandLineOptionProcessor.getOpts(args);}我将继续构建此方法/测试用例。但是我只是想确保一个简单的测试用例首先起作用。所以我写了下面的测试。@TestpublicvoidtestRun(){String[]args={"--arg1","value","--arg2","value2"};mockStatic(CommandLineOptionProc

java - EasyMock 期望方法在同一测试中返回多个不同的对象

我正在使用EasyMock对我的Java代码进行单元测试。我要测试的类是一个RESTfulweb服务API层。API有一个底层服务层,它在API测试中被模拟。我的问题是弄清楚如何正确地对我的editObject(ID,params...)API方法进行单元测试,因为它调用了service.getById()两次并期望一个不同的每次调用返回的对象。editObject(ID,params...)首先尝试从服务层抓取对象以确保ID有效(首先service.getById(ID)调用expect,返回原始未修改的对象)。接下来它修改API调用中指定的参数,将其保存到服务中,并再次调用get将

java - EasyMock:获取 EasyMock.anyObject() 的真实参数值?

在我的单元测试中,我使用EasyMock创建模拟对象。在我的测试代码中我有这样的东西EasyMock.expect(mockObject.someMethod(anyObject())).andReturn(1.5);因此,现在EasyMock将接受对someMethod()的任何调用。有什么方法可以获取传递给mockObject.someMethod()的真实值,或者我需要为所有可能的情况编写EasyMock.expect()语句? 最佳答案 您可以使用Capture类来期望和捕获参数值:CapturecapturedArgume

java - 测试 void 方法没有被 EasyMock 调用

这可能吗?我尝试使用EasyMock.expectLastCall().times(0);但EasyMock提示时间必须>=1 最佳答案 您可以使用.andThrow(newAssertionFailedError()).anyTimes();-这与Assert.fail()抛出的异常相同,但更少比做Answer更冗长。 关于java-测试void方法没有被EasyMock调用,我们在StackOverflow上找到一个类似的问题: https://stack

java - 带有 void 方法的 EasyMock 期望

我正在使用EasyMock做一些单元测试,我不明白EasyMock.expectLastCall()的用法。正如您在下面的代码中看到的那样,我有一个对象,该对象的方法返回void在其他对象的方法中被调用。我认为我必须让EasyMock期望该方法调用,但我尝试注释掉expectLastCall()调用,它仍然有效。是因为我通过EasyMock.anyObject())将其注册为预期调用还是发生了其他事情?MyObjectobj=EasyMock.createMock(MyObject.class);MySomethingsomething=EasyMock.createMock(MySo

java - 让 EasyMock 模拟对象抛出异常

我正在使用EasyMock为许多协作类编写单元测试。其中一个类(我们称之为Foo)打开一个到远程服务器的网络连接,并将服务器的XML响应解析为其他类可以使用的东西。目前,我的测试仅包含以下场景:一切都很正常,远程服务器已启动并运行并按预期返回XML。但是,如果我可以模拟Foo以便模拟远程服务器关闭或其他导致的问题时会发生什么,我会更高兴Foo抛出的IOException。我查看了EasyMockAPI,但看不到任何看起来像要求模拟抛出异常的方法的东西。对我来说,基于Exception的测试并不是绝对必要的,但我很好奇EasyMock是否可能,我认为测试Foo'会很有用s以这种方式公开契

java - 使用easymock,重复void方法调用

我是easymock的新手。我正在尝试模拟一个服务,其中一种方法是无效方法,该方法将被调用未知(且大量)次。如何指定允许任意数量的调用?我知道如何为具有非void返回类型的方法执行此操作。谢谢 最佳答案 调用mock的void方法。之后使用EasyMock.expectLastCall().anyTimes() 关于java-使用easymock,重复void方法调用,我们在StackOverflow上找到一个类似的问题: https://stackoverf

java - 如何使用 JUnit、EasyMock 或 PowerMock 模拟静态最终变量

我想模拟一个静态最终变量以及使用JUnit、EasyMock或PowerMock模拟一个i18n类。我该怎么做? 最佳答案 有没有像mocking这样的变量?我会称之为重新分配。我认为EasyMock或PowerMock不会为您提供重新分配staticfinal字段的简单方法(这听起来像是一个奇怪的用例)。如果你想这样做,你的设计可能有问题:如果你知道一个变量可能有另一个值,即使是为了测试目的,也要避免使用staticfinal(或更常见的全局常量)。无论如何,您可以使用反射来实现(来自:Usingreflectiontochang

java - EasyMock 作废方法

我正在尝试使用EasyMock模拟一些数据库接口(interface),以便我可以测试包装方法的业务逻辑。通过在我的测试设置中使用以下返回的方法,我一直很好。DBMapperdbmapper=EasyMock.createMock(DBMapper.class);userService.setDBMapper(dbmapper);然后在我的实际测试中运行EasyMock.expect(dbmapper.getUser(userId1)).andReturn(mockUser1);EasyMock.replay(dbmapper);userService.getUser(userId1)