在调试中保存对象,而不是在测试中将其用作存根

Vla*_*mir 5 java unit-testing mocking stub-data-generation

我的应用程序连接到db并从此处获取类别树.在调试方案中,我可以看到这个大树对象,我只想到能够将这个对象保存在磁盘上的某个地方,以便在测试存根中使用.像这样:

mockedDao = mock(MyDao.class);
when(mockedDao.getCategoryTree()).thenReturn(mySavedObject);
Run Code Online (Sandbox Code Playgroud)

假设mySavedObject- 足够大,所以我不想手动生成它或编写特殊代代码.我只是希望能够在调试会话期间将其序列化并保存在某处,然后对其进行反序列化并传递给thenReturn测试.是否有标准的方法可以这样做?如果不是如何更好地实施这种方法?

aku*_*uhn 2

真的很喜欢你的想法,太棒了!

我不知道有哪个库可以提供开箱即用的功能。如果您的对象全部实现,您可以尝试使用ObjectOutoutStreamand ObjectInputStream(即标准 Java 序列化)Seriablizable。通常他们不会。在这种情况下,使用XStream或其朋友之一可能会更幸运。