2009-05-20 3 views
2

Я хочу издеваться методом в абстрактном классе говорит «A», а также необходимо пройти и экземпляр типа А к методам Я: модульное тестирование.JMockit экземпляр абстрактного класса

Есть ли способ для создания экземпляра с помощью JMockit как Mockit.newemptyProxy Как решить этот сценарий

ответ

0

Может быть, это глупый вопрос, но вы на самом деле нужно JMockit в этой ситуации? Не можете ли вы сделать подкласс A и переопределить метод, который вы хотите высмеять? Что-то вроде этого:

class MyMockA extends A { 

    @Override 
    int myMethod(int x) { 
     // do stuff 
    } 
} 

@Test 
public void test_A_handler() { 
    A a = new MyMockA(); 
    A_handler testSubject = new A_handler(); 
    assertEquals(123, testSubject.handleA(a)); 
} 
2

Вы можете сделать это просто так:


@Test 
public void mockAbstractClassA(final A mock) 
{ 
    new Expectations() {{ 
     mock.doThis(); 
     mock.doThat(); returns(123); 
    }}; 

    new ClassUnderTest(mock).doStuff(); 
} 

Обратите внимание на параметр «Макет» в методе испытаний.