Junit 朱尼特和easymock一起失败了
我正在使用EasyMock为我的21点游戏编写单元测试。 但是我得到了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
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,请查看此资源以获取更多输入
希望这有帮助
祝你好运 对。我在类路径中使用了这两种方法。