Отсутствующий метод вызов для проверки (Mock), но есть один?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Отсутствующий метод вызов для проверки (Mock), но есть один?

Сообщение Anonymous »

Введение
Я пытаюсь сделать тест, который проверяет (используя Mockito v1.9.5. > В панели интерфейса вызывается после выполнения прохождения foo.deinit () , и я нажимаю ошибку, которую я действительно не понимаю.
Вот footest.java , который я пытаюсь запустить:

Код: Выделить всё

@RunWith(JukitoRunner.class)
public class FooTest {
@Inject
private Foo foo;
@Inject
private Bar bar;

public static class TestModule extends JukitoModule {
@Override
protected void configureTest() {
bind(Foo.class).to(FooImpl.class);
bind(Bar.class).to(BarImpl.class);
bindSpy(BarImpl.class);
}
}

@Test
public void testDeinit() {
foo.init(mock(Baz.class));
foo.deinit();
verify(bar).deinit();
}

@After
public void validate() {
validateMockitoUsage(); //line YY
}
}
При запуске, testdeinit () не удастся со следующей ошибкой:

Код: Выделить всё

org.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock) here:
-> at redacted.impl.BarImpl.deinit(BarImpl.java:XX)

Example of correct verification:
verify(mock).doSomething()

Also, this error might show up because you verify either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.

at redacted.impl.FooTest.validate(FooTest.java:YY)
at org.jukito.InjectedStatement.evaluate(InjectedStatement.java:96)
at org.jukito.InjectedAfterStatements.evaluate(InjectedAfterStatements.java:58)
at org.jukito.jukitoRunner.run(JukitoRunner.java:197)
Из которого мне не удалось извлечь много полезной информации. Кажется, что ошибка жалуется на то, чтоverify(bar).deinit() с таким же успехом может не иметь .deinit() в конце, и я могу удалить эту часть и получить идентичную ошибку . Пример, приведенный в сообщении об ошибке, особенно разочаровывает, поскольку он практически идентичен моему использованию проверки.
Подробнее
Вот мой BarImpl.java

Код: Выделить всё

public class BarImpl implements Bar {
private final Qux qux;
private final Quux quux;

@Inject
public BarImpl(final Qux qux, final Quux quux) {
this.qux = qux;
this.quux = quux;
}

@Override
private final void init(Baz baz) {
quux.init(this);
qux.init();
}

@Override
public final void deinit() {
qux.deinit();  //line XX
}
}
Я все еще неясен, как qux.deinit () вызывает сбой здесь. Вот мой fooimpl.java :

Код: Выделить всё

class FooImpl implements Foo {
private final Bar bar;

@Inject
public FooImpl(final Bar bar) {
this.bar = bar;
}

@Override
public void init(Baz baz) {
bar.init(baz);
}

@Override
public void deinit() {
bar.deinit();
}
}
Вопрос
Что вызывает незаконченноеверификацию и как его можно исправить?

Подробнее здесь: https://stackoverflow.com/questions/403 ... ere-is-one
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»