本文是笔者在Gson项目收集整理测试用例时看到的一个从未见过的测试单元,虽然它的功能也并不复杂。
事情是这样的,这是笔者首先看到的测试单元
/**
* {@link JsonTreeReader} effectively replaces the complete reading logic of {@link JsonReader} to
* read from a {@link JsonElement} instead of a {@link Reader}. Therefore all relevant methods of
* {@code JsonReader} must be overridden.
*/
@Test
public void testOverrides() {
List<String> ignoredMethods = Arrays.asList("setLenient(boolean)", "isLenient()");
MoreAsserts.assertOverridesMethods(JsonReader.class, JsonTreeReader.class, ignoredMethods);
}
注释说的事情大概是,子类JsonTreeReader继承了父类JsonReader,但是构造函数变了,父类的构造函数如下,接收的参数是一个Reader
public JsonReader(Reader in) {
this.in = Objects.requireNonNull(in