В моем проекте у меня есть 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.