JAVA格式代码出现两次_NullPointerException使用JMockit测试Mocked java.io.File两次
當我嘗試使用帶有JMockit的模擬文件時,我得到一個NullPointerException:
package com.metamolecular.poobah.test;
import java.io.File;
import junit.framework.TestCase;
import mockit.Expectations;
import mockit.Mocked;
public class MockedFileTest extends TestCase
{
@Mocked File file;
public void testMockedFileCanBeUsed1() throws Exception
{
new Expectations()
{
{
file.list();
result = null;
}
};
file.list();
}
public void testMockedFileCanBeUsed2() throws Exception
{
new Expectations()
{
{
file.list();
result = null;
}
};
file.list();
}
}
我的輸出是:
[java] 1) testMockedFileCanBeUsed2(com.metamolecular.poobah.test.MockedFileTest)java.lang.NullPointerException
[java] at java.io.FilePermission.init(FilePermission.java:193)
[java] at java.io.FilePermission.(FilePermission.java:249)
[java] at sun.net.www.protocol.file.FileURLConnection.getPermission(FileURLConnection.java:198)
[java] at sun.net.www.protocol.jar.JarFileFactory.getPermission(JarFileFactory.java:124)
[java] at sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(JarFileFactory.java:94)
[java] at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:50)
[java] at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
[java] at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:132)
[java] at java.net.URL.openStream(URL.java:1010)
[java] at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1232)
[java] at mockit.internal.ClassFile.readClass(ClassFile.java:55)
[java] at mockit.internal.ClassFile.createClassFileReader(ClassFile.java:44)
[java] at mockit.internal.ClassFile.(ClassFile.java:72)
[java] at mockit.internal.RedefinitionEngine.restoreOriginalDefinition(RedefinitionEngine.java:316)
[java] at mockit.internal.state.MockFixture.restoreAndRemoveRedefinedClasses(MockFixture.java:174)
[java] at mockit.internal.state.SavePoint.restoreClassesRedefinedAfterSavepoint(SavePoint.java:77)
[java] at mockit.internal.state.SavePoint.rollback(SavePoint.java:57)
[java] at mockit.internal.state.SavePoint.rollbackForTestClass(SavePoint.java:89)
[java] at mockit.integration.TestRunnerDecorator.updateTestClassState(TestRunnerDecorator.java:54)
[java] at mockit.integration.junit3.internal.JUnitTestCaseDecorator.runBare(JUnitTestCaseDecorator.java:81)
[java] at com.metamolecular.poobah.test.Main.main(Main.java:45)
[java]
[java] FAILURES!!!
[java] Tests run: 2, Failures: 0, Errors: 1
[java]
只有在調用testMockedFileCanBeUsed2時才會發生錯誤。如果只運行一個測試,則不會拋出任何錯誤。我在測試套件中看到了這種行為 - 換句話說,如果我在測試套件中使用一次模擬文件,那么使用模擬文件的其他測試套件也會拋出。
不熟悉JMockit,我可能只是在做一些愚蠢的事情 - 但我還沒有看到過我用過的其他模擬對象。
有任何想法嗎?
總結
以上是生活随笔為你收集整理的JAVA格式代码出现两次_NullPointerException使用JMockit测试Mocked java.io.File两次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot支付宝APP支付与退
- 下一篇: android监控io产生的应用,And