在为分析计算器编写 junits 时,我意识到为了测试一个简单的功能,我手动创建了带有测试值的 stub pojo,这会花费更多时间来编写实际的业务逻辑吗?
例如,如果我想检查一个计算总和的函数 ( person.age )/count (person)
现在,在编写 java junits 时,我模拟了返回一个人对象集合的服务,然后手动创建了 3 个 person 对象,每个对象都有一定的年龄。
现在如果人员类别很大,比如 30-40 个字段。有没有简单的方法来创建这样的对象?就像从数据库中提取数据并通过解析从数据库中获取的 CSV 文件来动态创建对象一样?
我想知道推荐的方法是什么?
最佳答案
嗯,单元测试的一个基本特征是它们应该很快。如果单元测试花费的时间太长,人们就会停止执行它。出于这个原因(以及单元测试控制之外的错误危险,例如数据库关闭),我不建议将值存储在数据库中。
但是您的案例听起来好像您实际上不需要填写 30-40 个字段,对吗?为什么你的类(class)需要所有这些?如果你这样做,这些字段是否真的有意义,或者你可以用随机数据填充它们?或者除了您要测试的内容之外,每个人都可以拥有相同的数据吗?
就个人而言,我宁愿不访问文件或类似的东西来测试与文件处理无关的东西,所以我会寻找一种方法来限制测试必须做的事情(测试也应该很容易,如果它非常长,没有人理解它)。如果必须的话,我会选择文件而不是数据库(仅仅是因为文件可以存储在测试资源中并且至少比数据库问题少)。但是,最好的方法可能不需要文件或数据库。
关于java - 如何用测试值和实际值填充大型 stub pojo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31631540/