我正在使用一个程序来解析一些文件,然后再处理这些文件。解析器经过了很好的测试,但我也必须测试处理部分。 问题是单元测试功能我需要来自解析器的大对象。我不想手动创建对象(时间太多)。 我的目标是重构一些流程功能,因为某些功能会做很多事情并处理大型对象。
语言是java,我用的是JUnit。
我试图在单元测试中保存对象和加载,但这是唯一的方法吗? 有什么建议吗?
提前致谢, 彼得
最佳答案
您可以尝试mock the parsed objects ,只为处理代码调用的特定方法定义所需的返回值。如果对象创建很复杂和/或对象具有许多外部依赖项,这将很有用。
其他选项是您列出的:直接从文件加载已解析的对象,或在单元测试中手动创建它们。我通常更喜欢后一种选择,因为单元测试应该尽可能地自包含。请注意,手动创建可能很乏味,但您只需要编写一次该代码,然后您可以将它与不同的参数一起用于所有单元测试。使用基于文件的方法时,您需要创建大量文件,这些文件可能在各个小位上有所不同,并且它们很快就会成为维护的难题。例如。如果文件格式在下一个版本中发生变化怎么办?您需要手动编辑所有测试文件。而使用第一种方法,您只需要在一个地方修改测试设置代码。
关于java - 如何 JUnit 测试从文件中解析的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345066/