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