4

MochaChaiを介してノードで単体テストを開始しようとしています。私は Python の組み込みunittestフレームワークにある程度精通しているので、Mocha の tdd インターフェイスと chai の TDD スタイル アサーションを使用しています。

私が直面している問題は、モカの tddsetup関数にあります。実行中ですが、その中で宣言した変数undefinedはテスト内にあります。

これが私のコードです:

test.js

var assert = require('chai').assert;

suite('Testing unit testing === testception', function(){

  setup(function(){
    // setup function, y u no define variables?
    // these work if I move them into the individual tests,
    // but that is not what I want :(
    var
       foo = 'bar';
  });

  suite('Chai tdd style assertions should work', function(){
    test('True === True', function(){
      var blaz = true;
      assert.isTrue(blaz,'Blaz is true');
    });
  });

  suite('Chai assertions using setup', function(){
    test('Variables declared within setup should be accessible',function(done){
      assert.typeOf(foo, 'string', 'foo is a string');
      assert.lengthOf(foo, 3, 'foo`s value has a length of 3');
    });
  });
});

次のエラーが生成されます。

✖ 1 of 2 tests failed:    
1) Testing unit testing === testception Chai assertions using setup Variables declared within  setup should be accessible:
         ReferenceError: foo is not defined
4

1 に答える 1

4

foo他のテストにアクセスできないスコープで宣言しています。

suite('Testing unit testing === testception', function(){

  var foo; // declare in a scope all the tests can access.

  setup(function(){
    foo = 'bar'; // make changes/instantiations here
  });

  suite('this test will be able to use foo', function(){
    test('foo is not undefined', function(){
      assert.isDefined(foo, 'foo should have been defined.');
    });
  });
});
于 2013-04-08T23:25:10.890 に答える