Модульное тестирование с EasyMock и Spring - PullRequest
0 голосов
/ 10 марта 2020

В моем проекте у меня есть UtilClass, например, A (все методы stati c, приватный конструктор). Мне нужно проверить один из этих методов c (13 параметров). Этот класс имеет одну зависимость (другой класс B). Класс B - поле stati c в классе A. В коде что-то вроде этого:

public class A{
    private static B b = AppContext.getBean(B.class);

    public static C a("14 parameters") throw MyException{
        try{
        b.call("13 parameters");
        }catch(MyExceptionSecond e){
            MyException newException = new MyException(msg,e);
            if(e.getCode() == smth){
                //do smth
            }
            throw privateMethodClassA(newException);
        }
    }
}

Мне нужно проверить, как работает privateMethodClassA, для этого я высмеял класс B в config-test. xml:

<bean class="org.easymock.EasyMock" factory-method="createMock" primary="true" id="classB">
    <constructor-arg value="com.my.package.B"/>
</bean>

Это мой метод test и setUp:

public class MyTest {
   private B b;

@Before
public void setUp() throws Exception {

    b = AppContext.getBean(B.class);
    expect(b.call("13 paramaters"))
        .andThrow(
            new MyExceptionSecond("some error code", "testMessage", new Object()))
        .anyTimes();
    replay(b);
}

@Test(expected = MyException.class)
public void testExceptionMethod() throws Exception {
    A.a("13 parametrs");
}
}

Если я оценил в debug b.call («13 параметров»), то все в порядке (в контексте теста), но в той же отладке, входящей в контекстный вызов класса A и оценивающий b.call («13 параметров») с теми же параметрами, что смоделированный объект возвращает null вместо MyExceptionSecond, как в первом случае. Проблема в том, что я не могу получить ошибку MyException, все мои попытки привели к: java.lang.AssertionError: Expected exception: com.my.package.MyException Что вы думаете об этой проблеме?

PS Я предполагаю, что это проблема в прикреплении ожидаемого () к контексту теста, а не к самому муку.

PPS java8, EasyMock 4.2, весна 4.2. 8, AppContext == org.springframework.context.ApplicationContext.

...