0
我有一个包含瞬态字段的类。但是这个类的其他部分是可序列化的。 在测试中我嘲笑场和类和深拷贝功能,它看起来像下面使用嘲笑类对象:是否可以在测试中模拟瞬态场?
try {
final ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
objectOut = new ObjectOutputStream(bytesOut);
// serialize and pass the object
objectOut.writeObject(original);
objectOut.flush();
final ByteArrayInputStream bytesIn =
new ByteArrayInputStream(bytesOut.toByteArray());
objectIn = new ObjectInputStream(bytesIn);
@SuppressWarnings("unchecked")
final T clone = (T) objectIn.readObject();
// return the new object
return clone;
}
catch() {...}
中的writeObject(原件)方法应该写所有的非暂时的和非静止的领域。但是我有一个错误,说模拟瞬态字段的java.io.NotSerializableException。我想知道在测试中是否无法识别瞬态场?我使用mockito作为我的框架。
感谢您的意见。我试图使用一个包含DummyClass深层副本参数的线程进行测试,该DummyClass具有一个临时子对象。所以当我用DummyClass对象dc创建一个新的DummyThread时,我得到了异常,这也是一个模拟,因为这个类包含了一堆字段。 – newguy