0

QunitJavaScript でテスト エンジンを使用しており、オブジェクトにプロパティが存在するかどうかを確認する必要があります。

これが私のセットアップです:

 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()equalsとfooequalfooを期待します。したがって、2 番目のテストでは、結果は次のようになります。barbar

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

これを達成するためのテストをどのように書くのですか?

4

1 に答える 1

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

...そして、それがあなたが望むテストではない場合、この場合に具体的に何をテストしようとしているのかを明確にすることができますか?

于 2013-09-06T07:40:50.530 に答える