我应该将返回的对象作为一个整体或单独测试其属性

时间:2015-01-14 16:10:07

标签: javascript jasmine

我有一个返回验证结果对象的方法:

this.validate = function() {
    //some validation code here

    return {
        result: validation result,
        message: "some message here",
        errors: []
    }
}

例如,为了测试验证失败,我可以这样做:

var validationResult = {
    result: failed,
    message: "some message here",
    errors: []
}

expect(validation.validate(nodes)).toEqual(validationResult);

或者这样:

expect(validation.validate(nodes).result).toEqual(false);

似乎第二种选择是我应该如何测试它。这是对的吗?我应该测试整个对象,例如,它是否具有预期的结构(字段)?

1 个答案:

答案 0 :(得分:1)

我建议验证整个对象,最好分别匹配每个属性,并且测试应该确切知道应该返回哪个错误,只要匹配结果boolean即使存在不同类型的错误也会通过它。 toEqual使用深度匹配并匹配对象的所有属性。