标签: easymock

如何在easymock中模拟一个返回其中一个参数的方法?

public Object doSomething(Object o);我想嘲笑.它应该只返回它的参数.我试过了:

Capture<Object> copyCaptcher = new Capture<Object>();
expect(mock.doSomething(capture(copyCaptcher)))
        .andReturn(copyCatcher.getValue());
Run Code Online (Sandbox Code Playgroud)

但是没有成功,我只得到一个AssertionError java.lang.AssertionError: Nothing captured yet.有任何想法吗?

java easymock mocking capture

30
推荐指数
4
解决办法
4万
查看次数

EasyMock void方法

我正在尝试使用EasyMock来模拟一些数据库接口,以便我可以通过包装方法测试业务逻辑.我已经通过在我的测试设置中使用以下方法返回的方法.

DBMapper dbmapper = EasyMock.createMock(DBMapper.class);
userService.setDBMapper(dbmapper);        
Run Code Online (Sandbox Code Playgroud)

然后在我的实际测试中运行

EasyMock.expect(dbmapper.getUser(userId1)).andReturn(mockUser1);
EasyMock.replay(dbmapper);
userService.getUser(userId1);
Run Code Online (Sandbox Code Playgroud)

然后,此服务连接到dbmapper并返回对象(使用setter方法注入映射器)

这些类型的模拟似乎工作正常.但是,当我尝试运行测试时

userService.addUser(newUser1);
Run Code Online (Sandbox Code Playgroud)

此方法调用void方法.

dbmapper.createUser(newUser);
Run Code Online (Sandbox Code Playgroud)

我正在嘲笑这个方法.我尝试了以下内容

EasyMock.expectLastCall();
EasyMock.replay(dbMapper);
userService.addUser(newUser1);
Run Code Online (Sandbox Code Playgroud)

正如其他一些帖子/问题等似乎暗示我得到了一个 IlligalStateException: no last call on a mock available

有人能指出我正确的方向吗?

提前谢谢了

java testing junit unit-testing easymock

30
推荐指数
2
解决办法
6万
查看次数

如何使用easymock在类中模拟静态方法?

假设我有一个这样的类:

public class StaticDude{
    public static Object getGroove() {
        // ... some complex logic which returns an object
    };
}
Run Code Online (Sandbox Code Playgroud)

如何使用easy mock模拟静态方法调用?StaticDude.getGroove().

我正在使用easy mock 3.0

java tdd static unit-testing easymock

29
推荐指数
3
解决办法
6万
查看次数

期待使用EasyMock作为模拟参数的任何东西

使用EasyMock我希望能够说我希望在我的模拟上调用一个特定的方法,但我不关心用于调用mock的参数.

SomeInterface mock = EasyMock.createMock(SomeInterface.class);
mock.send(/*anything*/);
replay(mock);

/* Perform actions that will eventually invoke mock */

verify(mock);
Run Code Online (Sandbox Code Playgroud)

这有可能,怎么样?

另外,如果我想接受从特定基类派生的任何对象,我该如何指定?

java tdd unit-testing easymock mocking

28
推荐指数
1
解决办法
3万
查看次数

java.lang.IllegalStateException:前面的方法调用getMessage("title")缺少行为定义

我正在使用EasyMock(版本2.4)和TestNG来编写UnitTest.

我有一个以下场景,我不能改变定义类层次结构的方式.

我正在测试扩展ClassA的ClassB.

ClassB看起来像这样

public class ClassB extends ClassA  {

  public ClassB()
    {
        super("title");
    }

    @Override
    public String getDisplayName() 
    {
        return ClientMessages.getMessages("ClassB.title");
    }

}
Run Code Online (Sandbox Code Playgroud)

ClassA代码

public abstract class ClassA {
    private String title;

    public ClassA(String title)
    {
        this.title = ClientMessages.getMessages(title);
    }

    public String getDisplayName()
    {
        return this.title;
    }
}
Run Code Online (Sandbox Code Playgroud)

ClientMessages类代码

public class ClientMessages {
    private static MessageResourse messageResourse;

    public ClientMessages(MessageResourse messageResourse) 
    {
        this.messageResourse = messageResourse;
    }
    public static String getMessages(String code) 
    {
        return messageResourse.getMessage(code);

    }
}
Run Code Online (Sandbox Code Playgroud)

MessageResourse类代码

public class MessageResourse …
Run Code Online (Sandbox Code Playgroud)

java testng unit-testing easymock

26
推荐指数
2
解决办法
6万
查看次数

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

我想嘲笑使用JUnit,EasyMock的或PowerMock静态final变量以及模拟一个国际化类.我怎么做?

java junit unit-testing easymock powermock

25
推荐指数
2
解决办法
5万
查看次数

EasyMock:测试不调用mock中的方法

根据标题,只是想知道是否有一个easymock机制来测试一个方法是否在它的生命周期内被调用.

easymock

24
推荐指数
3
解决办法
2万
查看次数

PowerMock ECLEmma coverage issue


We are using EasyMock and PowerMock with JUnit. The coverage tool used is ECLEmma. With EasyMock, it shows the coverage properly in green (as covered). However, for the code that is unit tested with PowerMock, the coverage is shown in red (uncovered). Have read similar questions on the web. However, just wanted to check if there is a solution for this.

Thanks
Venkatesh

java junit easymock

24
推荐指数
3
解决办法
2万
查看次数

@VisibleForTesting的替代品

我知道@VisibleForTesting是不可取的,因为它只是为了测试目的而改变了类的接口.理想情况下,我们应该测试我们实际使用的接口.但什么是一个好的选择?

refactoring easymock

22
推荐指数
1
解决办法
2万
查看次数

DAO单元测试

我一直在关注使用它进行单元测试DAO类的EasyMock和教程/示例,用于"外部容器"测试.但是,我认为他们中的大多数都在谈论测试服务层,而不是模拟DAO类.我有点困惑,你真的是如何对DAO层进行单元测试吗?

有人会说,与DB和EJB交互的测试实际上是集成测试而不是单元测试,但是你怎么知道你的SQL是否正确(假设没有ORM)并且你的DAO插入/查询真实的正确数据(读取,本地数据库与生产中的数据库类似?

我读到DBUnit是这种情况的解决方案.但我的问题是使用像DBUnit这样的框架"外部容器".如果DAO依赖于某些EJB,我们如何处理事务,如果有更新其他表的触发器会发生什么?

仅对具有此类依赖性的DAO进行单元测试的最佳方法是什么?

dbunit unit-testing dao easymock

22
推荐指数
2
解决办法
2万
查看次数

标签 统计

easymock ×10

java ×7

unit-testing ×6

junit ×3

mocking ×2

tdd ×2

capture ×1

dao ×1

dbunit ×1

powermock ×1

refactoring ×1

static ×1

testing ×1

testng ×1