Pra*_*eep 2 mockito powermock powermockito
我在嘲笑一个抛出的接口数组 java.lang.IllegalArgumentException: Cannot subclass final class class.
以下是我所做的更改。
按照完全相同的顺序在类级别添加了以下注释:
@Runwith(PowerMockRunner.class)
@PrepareForTest({ Array1[].class, Array2[].class })
Run Code Online (Sandbox Code Playgroud)
在课堂上,我这样做:
Array1[] test1= PowerMockito.mock(Array1[].class);
Array2[] test2= PowerMockito.mock(Array2[].class);
Run Code Online (Sandbox Code Playgroud)
和内部测试方法:
Mockito.when(staticclass.somemethod()).thenReturn(test1);
Mockito.when(staticclass.somediffmethod()).thenReturn(test2);
Run Code Online (Sandbox Code Playgroud)
基本上,我需要模拟一组接口。任何帮助,将不胜感激。
对您的问题开辟另一种观点:我认为您将单元测试弄错了。
您仅使用模拟框架来控制提供给被测代码的单个对象的行为。但是嘲笑一系列东西是没有意义的。
当您的“正在测试的类”需要处理某些数组,列表,映射等任何内容时,您可以为其提供数组,列表或映射-您只需确保该数组/集合中的元素...根据您的需要。也许一个测试的数组为空,也许另一个测试的数组为空,或者第三测试的模拟对象。
含义-您不这样做:
SomeInterface[] test1 = PowerMock.mock() ...
Run Code Online (Sandbox Code Playgroud)
相反,您可以这样做:
SomeInterface[] test1 = new SomeInterface[] { PowerMock.mock(SomeInterface.class) };
Run Code Online (Sandbox Code Playgroud)
并留意一些注意事项:
| 归档时间: |
|
| 查看次数: |
2133 次 |
| 最近记录: |