public static byte[] encrypt(File file, byte[] publicKey, boolean verify) throws Exception {
//some logic here
PGPPublicKey encryptionKey = OpenPgpUtility.readPublicKey(new ByteArrayInputStream(publicKey));
//some other logic here
}
public/private static PGPPublicKey readPublicKey(InputStream in) throws IOException, PGPException {
//Impl of this method is here
}
我的测试用例是:
@Test
public void testEncrypt() throws Exception {
File mockFile = Mockito.mock(File.class);
byte[] publicKey = { 'Z', 'G', 'V', 'j', 'b', '2', 'R', 'l', 'Z', 'F', 'B', 'L', 'Z', 'X', 'k', '=' };
boolean flag = false;
PGPPublicKey mockPGPPublicKey = Mockito.mock(PGPPublicKey.class);
InputStream mockInputStream = Mockito.mock(InputStream.class);
PowerMockito.mockStatic(OpenPgpUtility.class);
PowerMockito.when(OpenPgpUtility.readPublicKey(mockInputStream)).thenReturn(mockPGPPublicKey);
System.out.println("Hashcode for PGPPublicKey: " + OpenPgpUtility.readPublicKey(mockInputStream));
System.out.println("Hashcode for Encrypt: " + OpenPgpUtility.encrypt(mockFile, publicKey, flag));
}
当我调用openpgputility.encrypt(mockFile,publicKey,flag)
时,实际上不会调用此方法。如何在sideencrypt(...)
中模拟ReadPublicKey(...)
方法的结果?
我在某人的帖子中找到了SOF的解决方案。
在我的例子中,我使用了与下面相同的PowerMockito部分模拟。
powermockito.stub(powermockito.method(openpgputility.class,“readpublickey”,inputstream.class)).toreturn(mockPGPPublicKey);
我想从一个包含两个静态方法m1和M2的类中模拟一个静态方法m1。并且我希望方法m1返回一个对象。 我尝试了以下操作 2)但在执行m1时不调用它。
问题内容: 我想从包含2个静态方法m1和m2的类中模拟静态方法m1。我希望方法m1返回一个对象。 我尝试了以下 1) 这将同时调用m1和m2,它们具有不同的返回类型,因此会给出返回类型不匹配错误。 2) 但是,执行m1时不会调用此方法。 3) 给出了我不能从http://code.google.com/p/powermock/wiki/MockitoUsage获得的,无法提供模拟部分的编译器错误。
下面的事情我需要帮助, 我必须使用PowerMock/Mockito为一个方法编写一个JUnit,该方法调用外部jar中存在的最终类的静态方法。 我需要为其编写JUnit测试的方法是: 在上面的代码中是一个最终类,是中的静态方法。 我已经尝试编写如下所示的测试,但调试时节对象(节)显示为null。可能调用的是实际的代码(),而不是模拟。 请帮助我使用powermockito/mockito编写Ju
PowerMockito.when(ConnectionFactory.getConn(“ABC”).getCurrentStatus()).thenReturn(ConnectionStatus.Connected); 对于上面的陈述,我得到了一个NPE。 我在junit测试类的开头已经有@PrepareForTest({fxallConnectionFactory.class,Connecti
编辑: 感谢所有的回复。我找到了解决办法。我试图模拟一个方法findById,它不是直接在User.class中,而是在用户扩展的genericModel.class中。现在一切都很完美。