2016-09-30 5 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

custom matcher가 일치 검사의 복잡성을 숨기는 및 재사용을 달성하는 데 도움이 될 수.

비록, 직선 앞으로 그리드의 행을 통해 루프 접근과 충분 될 수 toMatch() 매처 (matcher)를 적용

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()는 약속을 반환하므로 두 번째 접근 방식을 사용했습니다. 고마워! –