2017-12-12 2 views
0

내가 약속모카와 차이

'use strict'; 
var chai = require('chai').use(require('chai-as-promised')) 
var should = chai.should(); 


describe('Testing how promises work',() => { 
    it("should work right", function(){ 
     class SomeClass { 
      constructor() { 
       this.x = 0; 
      } 
      getSomething(inputVal) { 
       let self = this; 
       return new Promise((resolve, reject) => { 
        setTimeout(function(){ 
         if(inputVal){ 
          self.x = 1; 
          resolve(); 
         } 
         else{ 
          self.x = -1; 
          reject(); 
         } 

        }, 10); 
       }); 
      } 
     } 

     var z = new SomeClass(); 

     return z.getSomething(true).should.eventually.be.fulfilled 
    }); 
}); 

테스트 통과처럼 모카 + 차이로 단위 테스트의 비트를 시도하고와 약속을 확인 후 클래스의 인적 또는 테스트하는 방법. 그러나 약속이 확정 된 후 z.x equals 1의 가치가 있는지 확인하고 싶습니다. 어떻게해야합니까?

이것은 단지 프로토 타입 일뿐입니다. 내 실제 사례에서 하나의 속성을 더 테스트하고 싶습니다.

답변

1

chai-as-promised이 Chai에 추가한다는 주장 자체가 약속입니다. 따라서 해당 어설 션에 .then으로 전화 할 수 있습니다. 따라서 귀하의 경우 return을 다음으로 변경하십시오.

return z.getSomething(true).should.eventually.be.fulfilled 
    .then(() => z.should.have.property("x").equal(1)); 
관련 문제