我正在使用 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);
}
我是否需要为实现此接口(interface)的类的方法编写Junit并使用此默认方法来测试它?
最佳答案
在你的测试中你可以这样做:
DataFilter dataFilter = new DataFilter() {
//Add no-op implementation for other methods
};
datafilter.parseYaml(testPath);
但是在添加你的界面时,我认为你根本不应该有这个默认方法。我认为最好注入(inject)一个带有此方法的 TableInstructorParser 。这对您的关注点分离会更好。
关于java - 为接口(interface)中的默认方法编写 Junit 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39274631/