Junit 朱尼特和easymock一起失败了

Junit 朱尼特和easymock一起失败了,junit,mocking,easymock,Junit,Mocking,Easymock,我正在使用EasyMock为我的21点游戏编写单元测试。 但是我得到了java.lang.IllegalArgumentException:无法子类化最终类com.blackjack.game.cards.Card错误 尽管如此,我觉得我做这件事的方式是正确的。 这是我的testclass: import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.easymock.Ea

我正在使用EasyMock为我的21点游戏编写单元测试。 但是我得到了
java.lang.IllegalArgumentException:无法子类化最终类com.blackjack.game.cards.Card
错误

尽管如此,我觉得我做这件事的方式是正确的。 这是我的testclass:

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.easymock.EasyMock;
import org.easymock.EasyMockRunner;
import org.easymock.EasyMockSupport;

@RunWith(EasyMockRunner.class)
public class handTest extends EasyMockSupport{
    private Hand hand;
    private Card seven, nine, ten, jack, ace;

    @Before
    public void setUp() throws Exception
    {
        seven = EasyMock.createNiceMock(Card.class);
        EasyMock.expect(seven.getValue()).andStubReturn(7);
        EasyMock.expect(seven.toString()).andStubReturn("seven value: 7");

    }

    @Test
    public void testTotalHandValueByAddingNumbers() {
        replayAll();
        hand.addCard(seven);

        assertEquals(27, hand.getTotal());


    }
}
如果有人能帮我处理这件事,我会很高兴的。我已经有一段时间没有编写单元测试了

编辑:我的类路径中有Objenesis和cglib


谢谢

您确定您有类模拟所需的其他库吗


cglib(2.2)和Objenesis(1.2)必须在类路径中才能执行类模拟

在所有情况下,您的类
com.blackjack.game.cards.Card
是最终类

createNiceMock
或者从这个意义上说,EasyMock不能用于模拟最终的类

在这种情况下,您需要使用Powermock,请查看此资源以获取更多输入

希望这有帮助


祝你好运

对。我在类路径中使用了这两种方法。