Мы используем две разные IDE, Netbeans 8.2 и Eclipse 4.7.2. Мы запускаем JMock 2.8.3 с JUnit 4.11 и имеем тест, который не проходит под Netbeans и Jenkins (с использованием скриптов Ant для Netbean), но проходит под Eclipse.
Ошибка «не все ожидания оправдались».
Однако, если я добавлю вызов assertIsSatisfied () в конец теста, произойдет сбой с правильным сообщением об ошибке в Eclipse.
Я могу воспроизвести это на тривиальном примере:
public class FailureExample {
private static class Example {
public void doSomething() { }
public void doSomethingElse() { }
}
// Mocks
@Rule public JUnitRuleMockery context = new JUnitRuleMockery(){{
setThreadingPolicy(new Synchroniser());
setImposteriser(ClassImposteriser.INSTANCE);
}};
public Example instance;
@Before
public void setUp() throws Exception {
// Mocks
instance = context.mock(Example.class);
}
@Test
public void testExample() {
context.checking(new Expectations() {{
oneOf(instance).doSomething();
oneOf(instance).doSomethingElse();
}});
instance.doSomething();
}
}
Есть ли что-то еще, что мне нужно сделать в Eclipse, чтобы JMock вел себя так, как ожидалось?
Обновление
Добавляем скриншот библиотек нашего проекта:
UPDATE
Я попытался создать новый проект Java, а также новый проект Maven (как описано ниже Тиллом Бричи), так как они работали. Я попытался удалить все jar-файлы, перечисленные для моего проекта, а затем прочитать их, но это не удалось.
Я очень близок к тому, чтобы отказаться от Eclipse в пользу Netbeans, просто потому, что у меня есть реальная работа, а не только борьба с Eclipse.