验证在Mockito中运行了预期的方法通常如下所示:
when(mockFoo.someMethod()).thenReturn(someValue);
// run test
verify(mockFoo, times(n)).someMethod();
在我创建模拟时,是否有任何方法来指定验证。在类似的EasyMock中,我可以这样做:
mockFoo = EasyMock.createMock(Foo.class);
EasyMock.expect(mockFoo.someMethod()).times(n).andReturn(someValue);
// then run test
如果我有以下方法:
public void handleUser(String user) {
User user = new User("Bob");
Phone phone = userDao.getPhone(user);
//something else
}
当我使用EasyMock使用模拟测试时,我可以像这样测试传递到UserDao模拟中的用户参数吗:
User user = new User("Bob");
EasyMock.expect(userDaoMock.getPhone(user)).andReturn(new P
final WatchFolderDataVO watchFolderDataVO = new WatchFolderDataVO();
final SessionFactory sessionFactoryMock = EasyMock.createNiceMock(SessionFactory.class);
final Session sessionMock = EasyMock.createNiceMock(Session.class);
EasyMock.expect(sessionFactoryMock.openSession()).andReturn(sessionMock).
我正在使用EasyMock 3.4,并进行了单元测试,我在这方面得到了一个错误,这是非常奇怪的。
堆栈跟踪是:
java.lang.IllegalStateException: 0 matchers expected, 1 recorded.
This exception usually occurs when matchers are mixed with raw values when recording a method:
foo(5, eq(6)); // wrong
You need to use no matcher at all or a matcher for eve
我正在尝试一个使用的非常简单的示例,但是我就是不能构建它。我有以下测试用例:
@Test
public void testSomething()
{
SomeInterface mock = EasyMock.createMock(SomeInterface.class);
SomeBase expected = new DerivesFromSomeBase();
EasyMock.expect(mock.send(expected));
}
但是,我在EasyMock.expect(...行中得到以下错误:
The method expect(T) in the
我以为StackOverFlowError在EasyMock v3.2 ()中已经解决了。我在使用v3.3时遇到了这个错误。在如何编写测试用例方面,有没有人有解决方案?
java.lang.StackOverflowError
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(Sec
//service to mock
public interface ServiceToMock {
public void operateDouble(Double dbValue);
public void operateCar(Car car);
}
//class under test
public class ClassUnderTest {
ServiceToMock service;
public void operateDouble(Double dbValue){
service.operateDouble(dbValue);
}
public void
我对单元测试是完全陌生的,并且已经完成了关于模拟对象的教程。我尝试测试一个简单的登录源代码,但无法创建正确的单元测试代码。如果我想测试不正确的用户名、正确的密码、正确的用户名和错误的密码,请有人提供一些帮助:
package com.isyn.testsetup;
public interface ApplicationUserService {
public ApplicationUser findByUserName(String userName);
}
package com.isyn.testsetup;
public
我们使用EasyMock在Eclipse中对我们的Java应用程序进行JUnit测试。使用与下面类似的代码,我们发现了一个奇怪的行为:当运行完整的测试套件(Eclipse Project -> Run as -> JUnit)时,一个测试用例会重复失败。然而,当它独立运行时,它工作得很好。
接口:
package de.zefiro.java.easymockexception;
public interface Fruit {
public String fall();
}
测试类:
package de.zefiro.java.easymockexception;
我有这个方法签名,我想用EasyMock模拟它
public BigDecimal getRemainingPremium(BigDecimal baseAmount, Date commencementDate, Date effectiveDate, boolean isComplete)
我的测试代码有
Premium premium = createMock(Premium.class);
// add this line
EasyMock.expect(premium.getCommencementDate()).andReturn(EasyMock.anyObject(Date.c
假设我们有
public class Foo {
public static Foo getInstance() {...}
public Bar bar(Baz baz) {...}
}
我想做的是在我的单元测试中模拟它。我需要模拟类Foo的静态和动态方法。模拟getInstance()就像下面这样简单
import static org.powermock.api.easymock.PowerMock.replace;
import static org.powermock.api.easymock.PowerMock.method;
public class MyTest
我目前正在做一些使用EasyMock的测试用例。我的示例代码如下所示:
{
dao = EasyMock.createNiceMock(Dao.class);
initObj();
EasyMock.replay(dao);
// EasyMock.verify(dao);
mapper = new Mapper();
mapper.setDao(dao);
}
@Test
public void testmapper(){
mapper.map();
}
public void initObj() {
Obj o = n