我应该测试返回的对象作为一个整体还是单独测试它的属性

should I test returned object as a whole or separately its properties

我有一个方法 returns 验证结果对象:

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);

看来第二个选项是我应该如何测试它。这是对的吗?然后我是否应该测试整个对象,例如,它是否具有预期的结构(字段)?

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