我正在使用Java编写一些应用程序并编写JUnit测试。我有关于单元测试的设计问题。我有一个类读取文件和创建对象称为 Song ,通过读取不同的行并根据某种算法进行解析。我已经写了一些单元测试。解析后的下一步是根据 Song 对象的某些属性将该歌曲实际转换为其他格式。我有另一个作为翻译的班级。有一种方法转换,它将 Song 对象作为输入。现在进行翻译单元测试。我需要一个具有所有有效属性的Song对象。我在这里很困惑,我应该通过添加与解析器相同的功能来创建一个新的 Song 对象,或者我应该调用解析器服务为我做这个。如果我采取第二种选择,我觉得它不会被孤立。但在第一个选项中,它就像重复的代码。有人可以指导我吗?
答案 0 :(得分:0)
当这个数据很复杂时,使用Builder来为SUT调用创建输入数据没有任何问题,但是我在这里看到了2个风险。
我的观点是,没有适合所有场景的最佳解决方案。如果输入数据不是很复杂,请尝试“手动”构建它,否则使用构建器。