2017-12-07 25 views
0

일련의 기대를 어떻게 재사용합니까? 예를 들어 :chai reuse series of expects

expect(savedUser).to.have.all.keys(['fbId', 'fbName', 'gender', 'birthdate', 'aboutMe']); 
expect(savedUser.fbId).to.equal(u.fbId); 
expect(savedUser.fbName).to.equal(u.fbName); 
expect(savedUser.gender).to.equal(u.gender); 
expect(savedUser.birthdate).to.equal(u.birthdate); 
expect(savedUser.aboutMe).to.equal(u.aboutMe); 

나는 다른 개체에 대해 여러 테스트에서 이러한 조건을 확인합니다.
이전에 도우미 유틸리티 모듈에서 이러한 예상치를 분리하려고 시도했지만 중도 적 언급이 중간에 있지만 예상치 못한 결과가 실제로는 발생하지 않았습니다.

원하는 결과를 얻으려면 더 좋은 방법은 무엇입니까?

+1

예상치 못한 경우 개체 매개 변수와 함께 함수에 넣을 수는 없습니까? – Lissy

+0

@Lissy가 언급 한 것은 내가 제안하는 것입니다. –

답변

1

그냥 함수로 묶습니다.

function validateSavedUser(savedUser) { 
    expect(savedUser).to.have.all.keys(['fbId', 'fbName', 'gender', 'birthdate', 'aboutMe']); 
    expect(savedUser.fbId).to.equal(u.fbId); 
    expect(savedUser.fbName).to.equal(u.fbName); 
    expect(savedUser.gender).to.equal(u.gender); 
    expect(savedUser.birthdate).to.equal(u.birthdate); 
    expect(savedUser.aboutMe).to.equal(u.aboutMe); 
} 
+0

이것은 전에 시도한 것이지만 별도의 모듈에 추가하는 것입니다. 나는. 'exports.validateSavedUser = (savedUser) => {...}'그러나 이것은 실제 테스트가 끝에 실패했음을 나타내지는 않습니다 ('t (...)'). 나는 식당 후에 다시 시도 할께. – Trace

+0

expect를 모듈로 가져 왔습니까? 이것은 효과가있다. –

+0

늦게 답변을 드려 죄송합니다. 코드 리팩토링에 많은 시간을 할애하고 있습니다. 그것은 결국 무엇이 잘못되었는지 확실하지 않습니다. – Trace