2016-09-30 2 views
2

私は、オブジェクトの配列を期待しています。以下の期待条件は正常に動作します。しかし、テスト中のシステムのために毎日、期待されるデータオブジェクト配列を変更する必要があります。 私の質問は、どのように正確な値を期待することなく、これらのタイプのオブジェクト配列のパターンを期待することですか?またはこれを処理する他の良い方法がありますか?分度器/ジャスミンは、オブジェクト配列をパターンとして返します。

it('Verify the functionality of displaying correct data in Status grid table', function() { 
     expect(HomePage.getStatusGrid()).toEqual([ 
      { make : 'Make1', model : 'Model1', totLoads : '17.24', washDays : 'Wednesday', timeDay : '10:00-11:00' }, 
      { make : 'Make1', model : 'Model2', totLoads : '15.58', washDays : 'Wednesday', timeDay : '16:00-17:00' }, 
      { make : 'Make1', model : 'Model3', totLoads : '17.17', washDays : 'Monday', timeDay : '18:00-19:00' }, 
      { make : 'Make2', model : 'Model4', totLoads : '16.27', washDays : 'Monday', timeDay : '19:00-20:00' }, 
      { make : 'Make2', model : 'Model5', totLoads : '16.19', washDays : 'Thursday', timeDay : '19:00-20:00' }, 
      { make : 'Make2', model : 'Model6', totLoads : '15.01', washDays : 'Friday', timeDay : '10:00-11:00' }, 
      { make : 'Make3', model : 'Model7', totLoads : '16.94', washDays : 'Tuesday', timeDay : '11:00-12:00' }, 
      { make : 'Make3', model : 'Model8', totLoads : '15.72', washDays : 'Thursday', timeDay : '10:00-11:00' }, 
      { make : 'Make3', model : 'Model9', totLoads : '15.90', washDays : 'Saturday', timeDay : '16:00-17:00' } 
     ]); 
    }); 

答えて

1

マッチングチェックの複雑さを隠し、再利用性を達成するのを助けることができます。

グリッド内ものの、行をループにストレートなアプローチとtoMatch()マッチャーを適用するには、十分に良いことができます:

var grid = [  
    { make : 'Make1', model : 'Model1', totLoads : '17.24', washDays : 'Wednesday', timeDay : '10:00-11:00' }, 
    { make : 'Invalid make', model : 'Model1', totLoads : '17.24', washDays : 'Wednesday', timeDay : '10:00-11:00' },  
]; 
grid.forEach(function (row) { 
    expect(row.make).toMatch(/Make\d+/); 
    expect(row.model).toMatch(/Model\d+/); 
    // TODO: more checks 
}); 

HomePage.getStatusGrid()は約束を返した場合、あなたは明示的にそれを解決する必要があること:

HomePage.getStatusGrid().then(function (grid) { 
    grid.forEach(function (row) { 
     expect(row.make).toMatch(/Make\d+/); 
     expect(row.model).toMatch(/Model\d+/); 
     // TODO: more checks 
    }); 
}); 
+0

これはまさに私が探していたものです。 HomePage.getStatusGrid()は約束を返しますので、2番目のアプローチを使用しました。どうもありがとう! –

1

は、私はあなたが完全なデータが一致するのではなく、あなたのためにあなたは、この上で始めるために

いくつかのリンクをパターンチェックを行うにはジャスミンでcustom matcherを書くことができますね。 custom matcherを持つ

jasmine 2.0 test with a custom matcher fails: undefined is not a function

http://jasmine.github.io/2.0/custom_matcher.html

+0

これを確認します。ありがとう。 –

関連する問題