У меня есть простой тестовый пример, в котором powermock используется для имитации исключения из метода ExceptionClass.getRandom путем имитации создания объекта Random. Но, судя по результатам теста, obj.getRandom() возвращает случайное значение, поэтому Assert.assertTrue(obj.getRandom() == 111); завершается с ошибкой, но я думаю, что obj.getRandom () должен вернуть 111, пытаясь имитировать случайное создание и генерировать исключение, я бы попросил помощи.
Спасибо.
package com.example;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.powermock.modules.junit4.PowerMockRunner;
import static org.powermock.api.mockito.PowerMockito.*;
import java.util.Random;
class ExceptionClass {
public int getRandom() {
try {
//Mock the random object using whenNew(Random.class).withNoArguments()
Random random = new Random();
//random.nextInt should throw IllegalStateException,so that 111 is returned
return random.nextInt();
} catch (Exception e) {
return 111;
}
}
}
@RunWith(PowerMockRunner.class)
public class MockThrowExceptionTest {
@InjectMocks
ExceptionClass obj;
@Test
public void testGetRandom() throws Exception {
Random rand = mock(Random.class);
whenNew(Random.class).withNoArguments().thenReturn(rand);
when(rand.nextInt()).thenThrow(new IllegalStateException());
//An exception is thrown in ExceptionClass.getRandom method, so that 111 should be returned,but it is a random value
Assert.assertTrue(obj.getRandom() == 111);
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -powermock
Исключение создания макета, и новый объект, похоже, не работает с использованием powermock ⇐ JAVA
Программисты JAVA общаются здесь
1729664542
Anonymous
У меня есть простой тестовый пример, в котором powermock используется для имитации исключения из метода ExceptionClass.getRandom путем имитации создания объекта Random. Но, судя по результатам теста, obj.getRandom() возвращает случайное значение, поэтому Assert.assertTrue(obj.getRandom() == 111); завершается с ошибкой, но я думаю, что obj.getRandom () должен вернуть 111, пытаясь имитировать случайное создание и генерировать исключение, я бы попросил помощи.
Спасибо.
package com.example;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.powermock.modules.junit4.PowerMockRunner;
import static org.powermock.api.mockito.PowerMockito.*;
import java.util.Random;
class ExceptionClass {
public int getRandom() {
try {
//Mock the random object using whenNew(Random.class).withNoArguments()
Random random = new Random();
//random.nextInt should throw IllegalStateException,so that 111 is returned
return random.nextInt();
} catch (Exception e) {
return 111;
}
}
}
@RunWith(PowerMockRunner.class)
public class MockThrowExceptionTest {
@InjectMocks
ExceptionClass obj;
@Test
public void testGetRandom() throws Exception {
Random rand = mock(Random.class);
whenNew(Random.class).withNoArguments().thenReturn(rand);
when(rand.nextInt()).thenThrow(new IllegalStateException());
//An exception is thrown in ExceptionClass.getRandom method, so that 111 should be returned,but it is a random value
Assert.assertTrue(obj.getRandom() == 111);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79116495/mock-throw-exception-and-new-object-seems-not-working-using-powermock[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия