2017-08-11 1 views
0

私はchakram + mochaを使用しています。 すべてのテストで共有変数を使用するにはどうすればよいですか?共有変数をchakramに追加するにはどうしたらいいですか?

たとえば、テストで変数API_PATH="http://example.com/v1/"を使用したいと思います。この変数は、実行中のテスト中に変更することができます。だから、私のテストはこのように見えます。

var response = chakram.get(API_PATH + "products"); 
expect(response).to.have.status(200); 

例として、分度器パラメータbaseUrlconf.js有します。走るテストは分度器のように見えるconf.js --baseUrl http://example.com/

答えて

0

これまでに何を試しましたか? beforeEachを使用して、使用しているオブジェクトを再初期化しようとしましたか?あなたはテストの外で宣言された共有変数を作ることができます。

編集:Jerryが言ったことの詳細を追加: すべての変数を同じテスト内で再利用したい場合は、それらをグローバル変数にする必要があります。以下の例を参照してください。

///include dependencies 
var assert = require('assert'), 
    chai = require('chai'), 
    expect = chai.expect, 
    chakram = require('chakram'); 

//INIT GLOBAL VARAIBLES FOR within the same test 
var testObj, 
    dummyData = { 
     user: 'John Kim', 
     lastSeenOnline: 'Wed August 11 12:05 2017' 
    }; 

describe ('#User', function() { 
    beforeEach(function() { 
     //init what the object contains 
     testObj = new DataStore(data, ContainerStore); 
    }); 

    it ('#Should return the name of the user', function() { 
     assert.equal(testObj.get('user'), dummyData.user); 
    }); 

    it("should offer simple HTTP request capabilities", function() { 
     return chakram.get("http://httpbin.org/get"); 
    }); 
}); 

注:反応して動作しますが、これは一例です。 ContainerStoreには、JSONオブジェクトの値を取得するget()メソッドが含まれていると仮定します。 testObjはテストの外で宣言されているので、異なる記述ブロックで何度も使用することができます。しかし、常にあなたのtesObjをbeforeEach()に再初期化することを忘れないでください。それ以外の場合は、個々のテストを実行するリスクがあります。 beforeEach()を初期化する必要がなく、オプションである場合があります。

+0

'あなたはテストの外に宣言された共有変数を作ることができます。 ' 私の質問です。 – JerryLee

関連する問題