测试 CloseableIterator 接口
Testing a CloseableIterator interface
测试以下接口的方法有哪些:
interface CloseableIterator<T> extends Iterator<T>, AutoCloseable {
}
谢谢。
编辑
我想知道以下测试是否有益:
@Test
void anonymousImplementation() {
new CloseableIterator<String>() {
@Override
public void close() throws Exception {
throw new Exception();
}
@Override
public boolean hasNext() {
return false;
}
@Override
public String next() {
return null;
}
};
}
然后,如果出于任何原因从 CloseableIterator
中删除了 AutoCloseable
,或者将泛型类型更改为 T extends Number
,它会给我编译错误。不是真正的 "test",但确保至少存在一个确保方法正确且通用类型有效的实现。
如现在所写,您的界面不包含任何代码(又名行为)。
因此没有什么可测试的。
换句话说:在这个时间点,没有理由在这里写单元测试。编写接口的仅测试实现,只是为了测试接口是接口是矫枉过正。在这里您永远不会遇到任何错误。
意思是:如果你的接口使用方式不对,编译器会让你知道。
记住:您不会编写单元测试,因为您可以。你写它们是因为它们有助于你的工作。如前所述,至少对于此处给定的接口,单元测试没有贡献有意义的价值。
测试以下接口的方法有哪些:
interface CloseableIterator<T> extends Iterator<T>, AutoCloseable {
}
谢谢。
编辑
我想知道以下测试是否有益:
@Test
void anonymousImplementation() {
new CloseableIterator<String>() {
@Override
public void close() throws Exception {
throw new Exception();
}
@Override
public boolean hasNext() {
return false;
}
@Override
public String next() {
return null;
}
};
}
然后,如果出于任何原因从 CloseableIterator
中删除了 AutoCloseable
,或者将泛型类型更改为 T extends Number
,它会给我编译错误。不是真正的 "test",但确保至少存在一个确保方法正确且通用类型有效的实现。
如现在所写,您的界面不包含任何代码(又名行为)。
因此没有什么可测试的。
换句话说:在这个时间点,没有理由在这里写单元测试。编写接口的仅测试实现,只是为了测试接口是接口是矫枉过正。在这里您永远不会遇到任何错误。
意思是:如果你的接口使用方式不对,编译器会让你知道。
记住:您不会编写单元测试,因为您可以。你写它们是因为它们有助于你的工作。如前所述,至少对于此处给定的接口,单元测试没有贡献有意义的价值。