如果您知道如何使用JMockit,那么这个问题是不言自明的:如何模拟具有泛型的方法?我想模拟这个方法:public T save(T entity)但它总是抛出这样的异常:
mockit.RealMethodNotFoundForMockException: Corresponding real methods not found for the following mocks:
Object save(Object)
at mockit.internal.RedefinitionEngine.modifyRealClass(RedefinitionEngine.java:130)
at mockit.internal.RedefinitionEngine.modifyRealClass(RedefinitionEngine.java:88)
at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:72)
at mockit.Mockit.setUpMocks(Mockit.java:197)
at com.mytest.MyTest.setUp(AdminManagerImplTest.java:83)
最佳答案
确实对我有用
- package a;
- import junit.framework.TestCase;
- import mockit.Mockit;
- public class JMockitCoreExampleTest extends TestCase {
- public class MockMe {
- public T save(T t) {
- return null;
- }
- }
- public void testDoOperationAbc() {
- Mockit.redefineMethods(MockMe.class,SayThatYouMockMe.class);
- MockMe mock = new MockMe();
- System.out.println(mock.save("aaa"));
- }
- public static class SayThatYouMockMe {
- public T save(T t) {
- return t;
- }
- }
- }
- Loaded external tool: mockit.integration.junit3.JUnitTestCaseDecorator
- Loaded external tool: mockit.integration.junit4.JUnit4ClassRunnerDecorator
- aaa
也许您在嘲笑冬眠的保存方法?如果是这样,请尝试使用jmockit的hibernate3emul.jar