如何JUnit测试从文件解析的对象

我正在编写一个解析一些文件而不是处理这些文件的程序.解析器经过了很好的测试,但我也必须测试处理部分.

问题是单元测试函数我需要来自解析器的大对象.我不想手动创建对象(这是太多的时间).

我的目标是重构一些进程函数,因为某些函数做了很多事情并使用大对象.

语言是java,我使用JUnit.

我试图在单元测试中保存对象并加载,但这是唯一的方法吗?
有什么建议?

提前致谢,
彼得

最佳答案 您可以尝试使用
mock the parsed objects,仅为处理代码调用的特定方法定义所需的返回值.如果对象创建很复杂和/或对象具有许多外部依赖性,这将非常有用.

其他选项是您列出的:直接从文件加载已解析的对象,或在单元测试中手动创建它们.我通常更喜欢后一种选择,因为单元测试应尽可能自包含.请注意,手动创建可能很繁琐,但您只需编写一次该代码,然后您可以使用不同的参数重复所有单元测试.使用基于文件的方法时,您需要创建大量文件,这些文件可能在各种小位上有所不同,并且很快就会成为维护问题.例如.如果文件格式在下一个版本中发生了变化怎么办?您需要手动编辑所有测试文件.使用第一种方法时,您只需要在一个位置修改测试设置代码.

点赞