我正在尝试测试一个抛出StreamCorruptedException的load方法。但是当我用junit 4测试时,测试失败了。
我的加载方法:
public BookDataProvider(String filename) throws StreamCorruptedException { ... }
我的测试班:
public class TestClass {
@Test (expected=StreamCorruptedException.class)
public void wrongFileTest() throws StreamCorruptedException {
BookDataProvider bdp = new BookDataProvider("wrong filename");
}
}
该方法抛出异常,但测试失败。我做错了什么?
答案 0 :(得分:1)
从您的代码中,我看到您的测试将错误的文件名传递给BookDataProvider
构造函数,这不会导致StreamCorruptedException,它只会导致IOException。 StreamCorruptedException由于数据的反序列化失败而发生,这主要是由于用于写入和读取的流的差异。例如,如果没有使用ObjectOutputStream编写数据,则在尝试使用ObjectInputStream读取数据时会发生这种情况。