尽管遵循了多种不同的资源,但我无法让PowerMock在新的时间工作。以下是我的示例:
public class MyClass {
public void foo() {
Point p = new Point(2, 3);
System.out.println(p);
}
}
我试图模拟构造函数,使其指向这样的点:
@RunWith(PowerMockRunner.class)
@PrepareForTest({MyClass.class})
public class MyClassTest {
public void testFoo() {
MyClass c = new MyClass();
PowerMockito.whenNew(Point.class).withAnyArguments().thenReturn(new Point(0, 0));
c.foo() // Still (2, 3) is printed instead of the mocked (0, 0)
}
}
我做错什么了吗?我应该提到,我正在gradle项目中使用PowerMock。这似乎与https://automationrhapsody.com/mock-new-object-creation-powermock/,所以我不知道为什么它对我不起作用。
@RunWith(PowerMockRunner.class)
@PrepareForTest({MyClass.class})
public class MyClassTest {
@Test
public void testFoo() throws Exception {
//Arrange
MyClass c = new MyClass();
Point point = new Point(0,0);
PowerMockito.whenNew(Point.class).withAnyArguments().thenReturn(point);
//Act
c.foo();
//Assert
PowerMockito.verifyNew(Point.class).withArguments(anyInt(), anyInt());
}
}
通常我会返回一个模拟对象。将Point point=new Point(0,0)替换为Point point=PowerMockito.mock(Point.class)
调试时,在带有的行中弹出一个NullPointerException,类为。
我有以下代码来创建一个从画布到数据URL的Blob dataURItoBlob=(dataURI)- 这在chrome/ff/opera中运行良好。但当我在IPAD os 6.1中尝试时,新的Blob返回[object Uint8Array]在IOS 6.1中有问题吗 谢啦
如何模拟返回已强制转换的模拟对象的方法。 试验方法。
我正在尝试用Java对一个类进行单元测试。 这个类依赖于另一个类。 类的代码: 在测试类时,我希望将的实例化存根。这是一个我想模拟的依赖项,我不希望它的构造函数被调用。 我的理解是,这将模拟或存根Collaborator,它的构造函数不应该被调用。但是,当我运行测试时,我注意到Collaborator的原始构造函数被调用。 试运行输出: 我对Java和Java中的单元测试非常陌生,所以如果我在这里
它的实现DAO类类似于下面的一个。 我搜索了PowerMock/EasyMock文档,但我猜大多数API方法都提供了对象,这些对象为我提供了DAO接口的虚拟实现类。 > 是否有某种方法可以创建连接的模拟对象(假设我没有物理数据库访问权限),并可以运行类中提供的后续代码,因为我必须使用这种模拟来实现代码覆盖率?
我有这门课(简体) 我试图模拟writeToFile方法,但没有成功 这个结果随着去到原来的方法,我也尝试了模拟具体的方法使用: 编辑:修复导入问题后,正如@pvpkiran所说,现在起作用了!我可以用DoAnswer来验证。