在调试中保存对象,而不是在测试中将其用作存根
-
05-07-2019 - |
题
我的应用程序连接到db并从此处获取类别树。在调试方案中,我可以看到这个大树对象,我只想到能够将这个对象保存在磁盘上的某个地方,以便在测试存根中使用。像这样:
mockedDao = mock(MyDao.class);
when(mockedDao.getCategoryTree()).thenReturn(mySavedObject);
假设 mySavedObject
- 足够大,所以我不想手动生成它或编写特殊代代码。我只是希望能够在调试会话期间将其序列化并保存在某处,然后对其进行反序列化并在测试中传递给 thenReturn
。
是否有标准的方法可以这样做?如果不是如何更好地实施这种方法?
解决方案
我做喜欢你的想法,真棒!
我不知道一个可以提供该功能的库。如果对象都实现 Seriablizable
,则可以尝试使用 ObjectOutoutStream
和 ObjectInputStream
(即标准Java序列化)。通常他们没有。在这种情况下,使用 XStream 或其中一位朋友可能会有更多的运气。
不隶属于 StackOverflow