Qunit测试属性存在于对象中

时间:2013-08-28 20:52:53

标签: javascript unit-testing qunit grunt-contrib-qunit

我在JavaScript中使用Qunit测试引擎,我需要检查对象中是否存在属性。

这是我的设置:

 var tests = [
    {
        foo: 'foo',
        bar: 'bar',
        expected: {}
    },
    {
        foo: '',
        bar: '',
        expected: //I need to expect foo and bar properties to exist
    }
 ]

 for(var i = 0; i < tests.length; i++) {
    assert.deepEqual(validate_foo(tests[i]), tests[i].expected);
 }

函数validate_foo()将成功返回空对象{},或者具有每个错误属性的对象。例如,validate_foo()预测foo等于foobar等于bar。所以在第二次测试中,结果是:

{
    foo: 'foo does not equal foo',
    bar: 'bar does not equal bar'
}

如何编写测试来实现此目标?

1 个答案:

答案 0 :(得分:1)

也许我完全忽略了这一点,但假设您正在测试validate_foo函数,这不是您需要做的全部吗?

var tests = [
    {
        foo: 'foo',
        bar: 'bar',
        expected: {}
    },
    {
        foo: '',
        bar: '',
        expected: {foo: 'foo does not equal foo',
                   bar: 'bar does not equal bar'}
    }
 ]

 for(var i = 0; i < tests.length; i++) {
    assert.deepEqual(validate_foo(tests[i]), tests[i].expected);
 }

......如果那不是你想要的测试那么你可以澄清你在这种情况下试图测试的具体内容吗?