3

我遇到了一些我无法弄清楚的问题,如果使用 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.*;  

那里可能有一些冗余。有可能发生冲突吗?为了消除歧义,顺序是否重要?

谢谢。

克雷格

4

1 回答 1

4

举个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

于 2011-03-26T00:06:06.877 回答