Я определил шпионский бон: < /p>
@Bean
public IMyService myServiceSpy()
{
return Mockito.spy(new MyServiceImpl());
}
< /code>
В моем тесте я хочу захватить аргумент, который получает сервис.
Конечно, если я определю услугу как макет вместо шпиона, это сработает, но я хочу активировать реальный метод службы и продолжить поток, потому что мне нужно рассчитать возвратную ценность. @Inject
private IMyService myServiceSpy;
@Test
public void myTest()
{
//act
//here invoking some service that will eventually invoke MyServiceImpl.
//assert
ArgumentCaptor someObjCaptor = ArgumentCaptor.forClass(SomeObj.class);
try
{
Mockito.verify(myServiceSpy, Mockito.atLeastOnce()).create(someObjCaptor.capture());
}
catch(Exception e)
{
Assert.fail();
}
assertEquals("some value" , someObjCaptor.getValue());
< /code>
Странная вещь заключается в том, что метод шпиона снова активируется при вызове Verify (), но на этот раз метод вызывается с нулевыми параметрами. < /p>
После этого он провален в утверждении < /p>
org.mockito.exceptions.base.MockitoException: No argument value was captured! You might have forgotten to use argument.capture() in verify()... ...or you used capture() in stubbing but stubbed method was not called. Be aware that it is recommended to use capture() only with verify()
Examples of correct argument capturing:
ArgumentCaptor argument = ArgumentCaptor.forClass(Person.class);
verify(mock).doSomething(argument.capture());
assertEquals("John", argument.getValue().getName());
< /code>
Я использую ниже, чтобы запустить тесты: < /p>
@RunWith(SpringJUnit4ClassRunner.class)
Подробнее здесь: https://stackoverflow.com/questions/514 ... spy-object
Использование проверки на Spy Object ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Безуспешно решить сложные группы ОДУ, используя Spy.integratesolve_bvp
Anonymous » » в форуме Python - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-