У меня есть следующий простой тестовый пример, который использует 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 общаются здесь
1729894962
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-to-be-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антехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия