如何在类中使用anthoer函数监视类文件?
当我在测试中使用新文件而不是在我的班级中时,可以用于测试。
public class Clazz {
public void fun(String path) {
File file = new File(path);
if (!file.exists()) {
throw new FileNotFoundException();
}
}
}
//Spock-test
class test extends Specification {
given:
GroovySpy(File, global: true, useObjenesis: true)
def mockFile = Mock(File) {
exists() >> true
}
new File(path) >> {mockFile}
when:
Clazz.fun("test.file")
then:
...
...
}
答案 0 :(得分:0)
关于间谍的官方spock文档:
使用此功能前请三思。改变可能会更好 规范下的代码设计。
http://spockframework.org/spock/docs/1.0/interaction_based_testing.html
没有理由在测试中使用间谍对象。如果您不喜欢重新设计代码,可以随时使用groovy元编程:
File.metaClass.exists = {true}