Я определил шпионский компонент:
@Bean
public IMyService myServiceSpy()
{
return Mockito.spy(new MyServiceImpl());
}
В моем тесте я хочу зафиксировать аргумент, который получает служба.
Конечно, если я определю службу как фиктивную, а не шпионскую, она будет работать, но я хочу активировать реальный метод службы и продолжить поток, потому что мне нужно, чтобы с ее помощью вычислялось возвращаемое значение.
@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());
Странно то, что метод шпиона снова активируется при вызове проверки(), но на этот раз метод вызывается с параметрами NULL.
После этого происходит сбой при утверждении
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());
Для запуска тестов я использую приведенное ниже:
@RunWith(SpringJUnit4ClassRunner.class)
Подробнее здесь: https://stackoverflow.com/questions/514 ... spy-object
Использование проверки объекта Spy ⇐ JAVA
Программисты JAVA общаются здесь
1761501875
Anonymous
Я определил шпионский компонент:
@Bean
public IMyService myServiceSpy()
{
return Mockito.spy(new MyServiceImpl());
}
В моем тесте я хочу зафиксировать аргумент, который получает служба.
Конечно, если я определю службу как фиктивную, а не шпионскую, она будет работать, но я хочу активировать реальный метод службы и продолжить поток, потому что мне нужно, чтобы с ее помощью вычислялось возвращаемое значение.
@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());
Странно то, что метод шпиона снова активируется при вызове проверки(), но на этот раз метод вызывается с параметрами NULL.
После этого происходит сбой при утверждении
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());
Для запуска тестов я использую приведенное ниже:
@RunWith(SpringJUnit4ClassRunner.class)
Подробнее здесь: [url]https://stackoverflow.com/questions/51426605/using-verify-on-spy-object[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия