2016-11-04 1 views
0

안녕 내에서, 나는이 같은 함수를 반환 발전기 기능이 사항 Array.some

*getClassifier(classifier) { 
    if (!classifier) { 
     return async(function *() { 
      return true; 
     }); 
    } 

    if (classifier !== null && typeof classifier === "object") { 
     return false; 
    } 

    let name = classifier.name; 
    if (!this._classRegistry[name]) 
     throw new Error("Classifier " + name + " is not registered"); 
    let com = yield this.injector.resolve(this._classRegistry[name]); 

    return (message) => com.classify(message, classifier.options); 
} 

를 얻을 그리고 난이

result = yield someclass.getClassifiers(classifier)(message); 
처럼 보이는이 기능을위한 단위 테스트를 만들려면

하지만 그때 chai를 사용하여 결과를 기대하는 방법에 혼란 스러웠습니다 예 expect(result).to.be.true;

어떤 힌트 나 해결책을 얻을 수 있습니다.

expect(generator).to.yield(true); 

:

답변

0

그러나 나는 당신이 (워드 프로세서)에서 같은 일을 할 수있는 chai-generator 모듈에 시도를 제공 할 수 있습니다, 당신이 여기 달성하려는 것에 대해 매우 확실하지 않다 Btw 나는 yield를 잘못된 방식으로 사용하고 있다고 생각한다. yield는 제네레이터 함수 내에서 값을 생성하는 데 사용된다. 외부에서 생성자 함수로 생성 된 모든 값을 처리하려면 반복기를 사용해야합니다.

두 번째 코드 블록에서 yield 키워드를 사용하면 나에게 맞는 말이되지 않습니다. 또한 나는 왜 당신이 발전기에서 값을 반환하는지 알지 못한다. 이 경우 yield *value*return *value*으로 대체해야합니다.