Удаление ранее определенных ожиданий в JMockit

У меня есть объект, над которым я издеваюсь с помощью JMockit NonStrictExcpection() в @Before/setUp() методе моего тестового класса, чтобы он возвращал значение, ожидаемое для нормального выполнения моего тестируемого класса.

Это нормально для всех моих тестовых методов, за исключением одного теста, в котором я хочу проверить ненормальную работу этого кода.

Я попробовал создать новое ожидание в тестовом методе, которое, как я полагал, переопределит ожидание в методе setUp, но обнаружил, что ожидание в методе setUp подавляет новое ожидание.

Когда я удаляю ожидание метода setUp, метод тестирования ведет себя как ожидалось (но все остальные мои тесты, естественно, не работают).

Как я должен написать свой тестовый класс, чтобы ожидания были правильно определены для каждого теста с минимальным количеством кода? (я знаю, что могу скопировать/вставить код ожиданий в каждый метод теста, но я не хочу этого делать, если это вообще возможно).

Мой тестовый код выглядит примерно так (обратите внимание, это своего рода псевдокод и не компилируется, но вы поняли идею):

public class TestClass{

    @Before
    public void setUp(){

        // Here I define the normal behaviour of mockObject
        new NonStrictExpectations() {{
            mockObject.doSomething();
            result = "Everyting is OK!";
        }};

        // Other set up stuff...

    }

    // Other Tests...

    /**
     * This method tests that an error when calling 
     * mockObject.doSomething() is handled correctly.
     */
    @Test(expected=Exception.class)
    public void testMockObjectThrowsException(){

        // This Expectation is apparently ignored...
        new NonStrictExpectations() {{
            mockObject.doSomething();
            result = "Something is wrong!";
        }};

        // Rest of test method...

    }
}
6
задан chrisbunney 10 February 2011 в 12:12
поделиться