使用节点生成唯一的测试数据

时间:2015-05-07 13:42:36

标签: node.js testing

我目前正在使用chance.js来生成测试数据。例如,我可以生成随机电子邮件并使用它来测试我的模型。

我的问题是我需要确保我的模型上的某些字段是唯一的,例如用户模型上的电子邮件。 chance是否确保它不会两次生成相同的电子邮件?

我愿意使用faker替代,但我无法确定faker是否提供此功能。

1 个答案:

答案 0 :(得分:2)

chance.js有一个独特的功能,它也支持比较器功能来自change.js docs:

  

比较器用于确定生成的项目是否在   已生成项目的列表。默认情况下,比较器只是检查   查看新生成的项是否已在数组中   生成的项目。这适用于大多数简单情况(例如   chance.state())但如果生成的项是对象则不起作用   (因为Array.prototype.indexOf()方法不适用于   对象,因为2个对象不会严格相等,===,除非它们   是对同一个对象的引用。)

chance.unique(chance.currency, 2, {
    comparator: function(err, val) {
        return arr.reduce(function(acc, item) {
            return acc || (item.code === val.code);
        }, false);
    }
});

查看docs了解详情......