我遇到了一些我不太清楚的问题,我发现的一个网站提示如果模拟是使用 PowerMock 创建的,则与 verify() 不兼容。
当我键入一行来创建模拟时,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.*;
那里可能有一些冗余。有可能发生冲突吗?为了消除歧义,顺序重要吗?
谢谢。
克雷格
最佳答案
取自 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
的东西。
关于java - EasyMock/PowerMock导入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5435438/