JMock - почему этот тест не проходит? - PullRequest
0 голосов
/ 03 августа 2011

Я играю с JMock и получаю эту ошибку на базовом тесте: кто-нибудь знает почему?

unexpected invocation: class2.add(<4>, <4>)
expectations:
 expected once, never invoked: class2.add(<2>, <2>); returns <4>
what happened before this: nothing!

Это класс

import org.jmock.Expectations;
import org.jmock.Mockery;
import org.junit.Test;

public class Play {
    private Mockery context = new Mockery();

    private Class2 mockedClass = context.mock(Class2.class);

    @Test
    public void testMethod() {

        Class1 class1 = new Class1();
        class1.class2 = mockedClass;

        context.checking(new Expectations() {
            {
                oneOf(mockedClass).add(2, 2);
                will(returnValue(4));
            }
        });

        class1.add(4, 4);
        context.assertIsSatisfied();
    }

    public class Class1 {
        public Class2 class2;

        public Integer add(Integer value1, Integer value2) {
        Integer val = class2.add(value1, value2);

        return val;
    }
}

public interface Class2 {
    public Integer add(Integer value1, Integer value2);
}

public class Class2Impl implements Class2 {
    public Integer add(Integer value1, Integer value2) {
        return value1 + value2;
    }
}

}

Спасибо

1 Ответ

0 голосов
/ 04 августа 2011

Мне удалось заставить это работать.Мне просто нужно было изменить эту строку

oneOf (mockedClass) .add (2, 2);

на

oneOf (mockedClass) .add (4, 4);

...