Исключение создания макета, и новый объект, похоже, не работает с использованием powermockJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Исключение создания макета, и новый объект, похоже, не работает с использованием powermock

Сообщение 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);
}

}



Подробнее здесь: https://stackoverflow.com/questions/791 ... -powermock
Ответить

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

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

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

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

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