StreamCorruptedException

StreamCorruptedException

我正在尝试测试一个加载方法,该方法将引发StreamCorruptedException。但是当我用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");
   }
}


该方法引发异常,但测试失败。我做错什么了?

最佳答案

从您的代码中,我看到您的测试正在将错误的文件名传递给BookDataProvider构造函数,这不会导致StreamCorruptedException,而只会导致IOException。由于数据反序列化失败而发生StreamCorruptedException,这主要是由于用于写入和读取的流中的差异所致。例如,如果未使用ObjectOutputStream写入数据,则尝试使用ObjectInputStream读取数据时会发生这种情况。

07-26 03:48