public class MyService
{
…
private void myMethod(byte[] data, UserFile userFile, User user)
{
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml" })
@PrepareForTest(MyServiceImpl.class)
public class MyServiceIT
{
@Rule
public PowerMockRule rule = new PowerMockRule();
@Autowired
private MyService m_mySvc;
private MyService m_mySvcSpy;
@Before
public final void setup() throws Exception
{
m_mySvcSpy = PowerMockito.spy(m_mySvc);
PowerMockito.doNothing().when(m_mySvcSpy, “myMethod”, Matchers.any(byte[].class), Matchers.any(UserFile.class), Matchers.any(User.class));
testUploadFile(org.mainco.subco.user.service.MyServiceIT) Time elapsed: 12.693 sec <<< ERROR!
使用PowerMockito模拟私有方法的泛型参数的正确方法是什么?
我想您的测试是用SpringJunit4ClassRunner
注释的。在这种情况下,您必须使用PowerMockRule
:
public class MyServiceTest {
@Rule
public PowerMockRule rule = new PowerMockRule();
...
此外,您还将MyService
方法与PowerMock绑定在一起。因此,必须使用@PrepareforTest
注释测试类:
...
@PrepareForTest(MyServiceImpl.class)
public class MyServiceTest {
...
完整代码:
@PrepareForTest(MyServiceImpl.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class MyServiceTest {
@Rule
public PowerMockRule rule = new PowerMockRule();
@Autowired
private MyService service;
private MyService spy;
@Before
public final void setup() throws Exception {
spy = PowerMockito.spy(service);
PowerMockito.doNothing().when(spy,
"myMethod",
Matchers.any(byte[].class),
Matchers.any(UserFile.class),
Matchers.any(User.class));
}
...
}
问题内容: 我正在尝试模拟私有静态方法。见下面的代码 这是我的测试代码 但是我运行的每个瓦片都会出现此异常 我想我在嘲弄东西时做错了什么。有什么想法我该如何解决? 问题答案: 为此,您可以使用和。 此外,您必须在测试类中指定PowerMock运行器,并准备要进行测试的类,如下所示: 希望对您有帮助。
问题内容: IDK(是否重复),但我确定找不到相关项目。我一直期望这真的很简单,因为通过反射它非常简单,但是我宁愿使用正确的工具来完成它。 澄清:旧版代码。没有吸气剂/二传手。 为此使用Whitebox是否正确?我以为是“超限”,即内部API的一部分?…或者那是严格的Mockito吗? 问题答案: 请参阅。 例如-给定的类需要测试: 具有以下私有实例: 然后可以用来设置的私有状态,以便可以对其进行
我试图模拟一个私有方法(executeGetRequest),在我声明要为私有方法返回的模拟的那一行中,私有方法实际上是用null参数执行的,因此抛出了一个NullPointerException。 VlcPlayerMinimal。爪哇: VlcPlayerMinimalTest。爪哇: 堆栈跟踪: 它似乎PowerMockito实际上是调用的方法,我试图在行PowerMockito.do返回(
有人能帮帮我吗?提前谢了。
我试图在测试的类中模拟一个私有方法,如下所示。 现在我需要测试方法和mock。 我尝试创建间谍的上述类,但该方法得到调用时,我这样做下面 在第二行本身被调用。而且,不会被模仿。 也许我用错误的方式创建了间谍对象?无法执行