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

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

本文关键字:测试 一个 单独 属性 对象 返回 我应该      更新时间:2023-09-26

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

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使用深度匹配并匹配对象的所有属性。