在接口

时间:2016-09-01 14:44:52

标签: java junit

我正在使用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并使用此默认方法对其进行测试?

1 个答案:

答案 0 :(得分:4)

在你的测试中你可以做到:

DataFilter dataFilter = new DataFilter() {
//Add no-op implementation for other methods
};
datafilter.parseYaml(testPath);

但是看看添加你的界面我不认为你应该有这个默认方法。我认为最好使用此方法注入TableInstructorParser。这对你的关注点分离会更好。