草庐IT

EASYMOCK

全部标签

java - PowerMockRunner 在运行简单测试时导致 ExceptionInInitializerError

我无法使用Powermock测试运行器运行非常简单的测试类。它会导致ExceptionInInitializerError。它看起来是类路径上的依赖项的问题,但是,我尝试了依赖项版本的几个变体,但它们都会导致相同的错误。使用Powermock测试运行器时,如何才能让这个简单的测试通过?测试代码:packagenet.solasistim.hello;importorg.junit.Test;importorg.junit.Assert;importorg.junit.runner.RunWith;importorg.powermock.modules.junit4.PowerMockR

java - 如何避免在用于日志记录的字符串中调用模拟对象的方法?

我写了一个测试方法,其中有一个模拟对象(比如mockA)。我能够期待mockA的方法调用实际的程序逻辑。但是,我的程序的一部分也有日志记录,它需要字符串形式的对象信息。在创建字符串消息时,在对象上调用了一些不必要的方法。因此,在运行测试时,这些方法调用导致测试失败。这是一个例子。publicclassExample{publicintmethod(Foofoo){inta=foo.doSomething();//requiredforprogram.StringlogMessage="foodidsomething."+foo.getA()+foo.getB().getC();logg

java - EasyMock 和 JNA - 模拟通用返回类型

我正在尝试使用EasyMock模拟以下JNA调用convInterface=(ConvInterface)Native.loadLibrary(libraryLocation,ConvInterface.class);使用这个测试方法@TestpublicvoidtestLib(){Capture>myClassCapture=EasyMock.newCapture();PowerMock.mockStatic(Native.class);EasyMock.expect(Native.loadLibrary(EasyMock.isA(String.class),EasyMock.cap

java - EasyMock:提供你在编译时不知道的参数

使用最新版本的EasyMock,我有一个方法需要stub。该方法接受一个对象参数并返回void。stub方法正在被我正在测试的方法调用。那里没有惊喜。我的困难在于,作为参数提供给模拟方法的对象是由我正在测试的方法创建的。我知道我可以使用createNiceMock()来解决这个问题,但是有没有办法显式地取消这个方法?示例代码:publicinterfaceIMockMe{voiddoSomething(InnerObjobj);}publicclassTestMe{IMockMemockMe;publicvoidtestThisMethod(){InnerObjobj=newInner

java - 在多线程中使用 easymock

我想测试一些方法是否会在失败时被召回。调用在单独的线程中执行。所以我这样写代码finalFoomock=createStrictMock(Foo.class);mock.bar();expectLastCall().andThrow(newRuntimeException("TESTEXCEPTION"));mock.bar();replay(mock);doStuff();sleepSomeTime();//Prettydirty.ButIneedtotestitinmultithreading.verify(mock);测试通过。但是我还没有实现召回。为了让测试失败,我替换了moc

java - 记录的 Matchers 多于预期 - Easymock 从 Maven 而不是从 Eclipse 失败

我在使用Easymock3.0和JUnit4.8.2时遇到了一个奇怪的问题。该问题仅在从Maven而不是从Eclipse执行测试时出现。这是单元测试(非常简单):...protectedValueExtractorRetrievermockedRetriever;...@Beforepublicvoidbefore(){mockedRetriever=createStrictMock(ValueExtractorRetriever.class);}@Afterpublicvoidafter(){reset(mockedRetriever);}@TestpublicvoidtestNul

java - EasyMock - 改变 equals() 和其他对象方法的行为

EasyMock文档非常清楚Thebehaviorforthethreeobjectmethodsequals(),hashCode()andtoString()cannotbechangedforMockObjectscreatedwithEasyMock,eveniftheyarepartoftheinterfaceforwhichtheMockObjectiscreated.我尝试测试的代码使用equals()将我的模拟对象与其他对象进行比较。我想做类似的事情expect(mock.equals(obj)).andReturn(false);当我这样做时,我得到一个Illegal

java - EasyMock 为预期方法返回 Null

我遇到EasyMock为预期的(定义的)方法调用返回null的问题。模拟对象的创建mock=EasyMock.createMock(DAO.class);单元测试中的模拟设置。expect(mock.update(myObj).andReturn(myObjUpdated).once();replayAll();service.setDao(mock);service.processData(myObj);verifyAll();processData方法简单的调用MyObjectobjUpdated=dao.update(myObj);这是从中构建模拟的接口(interface)。p

java - Scala 想告诉我什么,我该如何解决? [需要 : java. util.List[?0] 类型 ?0]

我正在学习Scala,今天我有信心将它引入我们的一个项目。该应用程序执行了大量JPA/Hibernate操作,我开始在Scala中实现其中一个Java接口(interface)。一切顺利,直到我尝试将一些单元测试代码翻译成Scala。我经常使用Easymock,代码很容易解释。我想问题是,Scala不允许我返回一个类型化的java.util.List它期望一个非类型化的。不幸的是,我不知道如何让Scala将需要类型参数的东西转换为没有类型参数的东西。说明/重现我的问题的代码:packagesome.package.nameimportjava.util.ArrayListimportj

java - Easymock 使用日期期望

我正在用easymock模拟一个在其主体中有日期的方法,如下所示:publicvoidtestedMethod(){...if(doSomething(newDate())){...}我的测试是这样的:publicvoidtestThatMethod(){...expect(testedClass.testedMethod(newDate())).andReturn(false);...}但是当我运行测试时,有时会出现这样的错误:UnexpectedmethodcalltestedMethod(ThuJan2809:45:13GMT-03:002010):testedMethod(Th