EasyMock / PowerMock импорт вопрос - PullRequest
3 голосов
/ 25 марта 2011

У меня возникают некоторые проблемы, которые я не могу понять, и один сайт, который я обнаружил, предложил проблему с несовместимостью с verify (), если макеты были созданы с помощью PowerMock.

Когда я набираю строку для создания макета, Eclipse говорит мне, что метод неоднозначен, и мне приходится указывать его как EasyMock.createMock или PowerMock.createMock.

Первоначально я только начал с EasyMock, а затем переключился на PowerMock. Имеет ли значение порядок операторов импорта, и если вы используете PowerMock, важно ли не включать некоторые вещи EasyMock?

Вот что у меня есть:

import org.easymock.EasyMock;  
import org.junit.*;  
import org.junit.runner.RunWith;  

import static org.easymock.EasyMock.*;  
import static org.powermock.api.easymock.PowerMock.*;  
import org.powermock.reflect.Whitebox;  
import org.powermock.api.easymock.*;  
import org.powermock.api.easymock.PowerMock.*;  
import org.powermock.api.mockito.expectation.*;  
import org.powermock.api.mockito.*;  
import org.powermock.api.support.membermodification.*;  
import org.powermock.api.support.membermodification.MemberMatcher.*;  
import org.powermock.core.classloader.annotations.*;  
import org.powermock.modules.junit4.*;  

Там могут быть некоторые сокращения. Возможен ли конфликт? И важен ли порядок для устранения двусмысленности?

Спасибо.

Craig

1 Ответ

4 голосов
/ 26 марта 2011

Из примера PowerMock

import static org.easymock.EasyMock.aryEq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.powermock.api.easymock.PowerMock.createMock;
import static org.powermock.api.easymock.PowerMock.expectNew;
import static org.powermock.api.easymock.PowerMock.replay;
import static org.powermock.api.easymock.PowerMock.verify;

Обратите внимание, что они не импортируют createMock из обеих библиотек.Вам не следует импортировать из EasyMock ничего, для чего вы уже используете PowerMock.

...