我得写封信 JUnit5
在下面的代码中覆盖catch块的测试用例。但是,我不能扔 IOException
因此,它永远不会在捕捉块中结束。我尝试了几件事,但都没有成功 Files.write(...)
抛出所需的异常。如何抛出此异常?
代码覆盖
private static final String pathString = "path";
public String createFile() {
JSONObject json = new JSONObject();
String file;
json.put("key", value);
try{
Path streamJson = Files.write(Paths.get(pathString), json.toJSONString().getBytes());
file = streamJson.toString();
return file;
} catch(IOException e){
return null;
}
}
2条答案
按热度按时间ndasle7k1#
恐怕单凭junit5无法解决您的问题。我不知道像powermock这样的库是否能解决您的问题。
如果不是,那么重构您的代码,使用一个封装代码的类来编写文件(比如filehelper、文件系统、filerepository或类似的东西)怎么样?
通过这种方式,您可以对该类进行模拟,使模拟的行为与您的测试用例所需的类似。
5lhxktic2#
获取ioexception至少有两种方法:
或
打开您的文件系统,并将您试图写入的文件设置为只读。