我正在使用Java 1.8并在Interface中使用默认方法。 由于我们的目标是为我们拥有的所有方法编写JUnit,因此我需要为默认方法编写Junit。有人可以帮助我,知道我们能否实现它。
我的界面如下。
public interface DataFilter {
default public TableInclusions parseYaml(String path) throws IOException {
Resource resource = new ClassPathResource(path);
Yaml yaml = new Yaml();
yaml.setBeanAccess(BeanAccess.FIELD);
return yaml.loadAs(resource.getInputStream(), TableInclusions.class);
}
public DBMSEvent filter(DBMSEvent jsonString) throws FilterException;
public void setYaml(String path);
}
我是否需要为实现此接口的类的方法编写Junit并使用此默认方法对其进行测试?
答案 0 :(得分:4)
在你的测试中你可以做到:
DataFilter dataFilter = new DataFilter() {
//Add no-op implementation for other methods
};
datafilter.parseYaml(testPath);
但是看看添加你的界面我不认为你应该有这个默认方法。我认为最好使用此方法注入TableInstructorParser。这对你的关注点分离会更好。