2017-10-02 7 views
0

ジャスミンテストで私のバールに問題があります。ジャスミンの巻上げメモリ

var utils = require('./utils'); 

describe('test', function() { 
    it('test 1', function (done) { 
    var baseMock = utils.fixtures.base; 
    baseMock.campaigns.name ='test 1'; 
    console.log(baseMock.campaigns.name); 
    done(); 
    }); 

    it('test 2', function (done) { 

    var baseMock = utils.fixtures.base; 
    'it should be the original name, but have the name changed in the first test' 
    console.log(utils.fixtures.base.campaigns.name); 
    done(); 
    }); 

}); 

私は基本データモック(utils.fixture.base)を持っており、各テストで使用しています。しかし、私はこのモックのいくつかの属性を変更すると、この変更は次のテストに反映されます。

どのようにしてオリジナルのモックをテストごとに取得できますか?

pd:私はecma5でノードの古いバージョンを使用しています。

pd2:ごめんなさい、私の英語です。

ありがとうございます!

+0

あなたは、オブジェクトのコピーを作成するか、各テストの後に戻って自分の古い値にプロパティを設定する必要があります。これは吊り上げとは無関係です。同じオブジェクトを共有するだけです。 – Bergi

+2

これはテスト中だけでなく、おそらくアプリケーションの問題でもあることに注意してください。 – Bergi

答えて

1

utils.fixtures.baseが何であるかわからないので、何をすべきかを明確に説明することは不可能ですが、効果的には、各テストでモックオブジェクトのコピーを作成する方法が必要です。 :

var utils = require('./utils'); 
 

 
function buildBaseMock() { 
 
    return makeACopyOf(utils.fixtures.base); 
 
} 
 

 
describe('test', function() { 
 
    it('test 1', function (done) { 
 
    var baseMock = buildBaseMock(); 
 
    baseMock.campaigns.name ='test 1'; 
 
    console.log(baseMock.campaigns.name); 
 
    done(); 
 
    }); 
 

 
    it('test 2', function (done) { 
 
    var baseMock = buildBaseMock(); 
 
    'it should be the original name, but have the name changed in the first test' 
 
    console.log(utils.fixtures.base.campaigns.name); 
 
    done(); 
 
    }); 
 

 
});

関連する問題