2016-06-28 9 views
0

私は、res.body.resultに各項目の期待値を書き込むのではなく、動的にモカテストを作成しようとしています。結果配列を使用してモカテストを作成するにはどうすればよいですか?

{ 
    "ok": true, 
    "result": { 
    "year": "2000", 
    "makes": [ 
     "Acura", 
     "Audi", 
     "BMW" 
    ] 
    } 
} 

、代わりになるごとに、これを書いている:

describe('Decode VIN', function(){ 
    it('should return 200 response', function (done){ 
     api.get('/makes_year?year=2000') 
      .set('Accept', 'application.json') 
      .expect(200) 
      .end(function(err, res) { 
       expect(res.body.ok).to.equal(true) 
       expect(res.body.result.year).to.equal("2000") 
       expect(res.body.result.makes).to.equal("Acura") 
       expect(res.body.result.makes).to.equal("Audi") 
       done(); 
      }) 
    }); 
}); 

がどのように私はこの繰り返し行うことができます私はこのようなJSONレスポンスを持っていますか?

編集:私はdescribe文の中でexpectedMakesを宣言しようとしました。簡潔にするために、これは2つのうちの1つです。

var expectedMakes = [ 
    "Acura", 
    "Audi", 
    "BMW" 
]; 

describe('Makes By Year', function(){ 
    it('should return 200 response, body.ok, and an array of vehicle makes', function (done){ 
     api.get('/makes_year?year=2000') 
      .set('Accept', 'application.json') 
      .expect(200) 
      .end(function(err, res) { 
       expect(res.body.ok).to.equal(true) 
       expect(res.body.result.year).to.equal("2000") 
       expect(res.body.result.makes).to.equal(expectedMakes) 
       done(); 
      }) 
    }); 
}); 

私はこの結果を得る:

Uncaught AssertionError: expected [ Array(37) ] to equal [ Array(37) ] 
    + expected - actual 

答えて

0

期待値は、あなたのテストに配置されています。一つの方法は、あなたのテストで期待どおりにすべてのmakesを格納することと主張する可能性リストは私が行うの配列を宣言しようとした各項目がexpectedMakes

+0

に一致する場所にあると厳密に等しいことをアサートします

var expectedMakes = [ 'Acura', 'Audi', ... ] expect(res.body.result.makes).toEqual(expectedMakes) 

それの内側と外側にある。それは失敗する、私はこれを行う必要があります別の方法はありますか? –

関連する問題