私はchai-as-promised
をカルマ単体テストで約束して$q
と一緒に働こうとしています。
svc.test = function(foo){
if (!foo){
// return Promise.reject(new Error('foo is required'));
return $q.reject(new Error('foo is required'));
} else {
// get data via ajax here
return $q.resolve({});
}
};
it.only('should error on no foo', function(){
var resolvedValue = MyServices.test();
$rootScope.$apply();
return resolvedValue.should.eventually.be.rejectedWith(TypeError, 'foo is required');
});
単体テストがタイムアウトしました。適切に解決する約束を得るために私がここで間違っていることを私は確信していません。それは$q
を使用して問題があるようです - 私がネイティブを使用する場合Promise.reject()
それは正常に動作します。
私はここでチケットを提出したが、誰も応答しているように見えるん: https://github.com/domenic/chai-as-promised/issues/150
は角/ $ qはそれほど一般的であり、ほとんどの企業はそれでチャイを使用するので、プラグインによって提供されているべきもののように思えます。 – chovy
@chovy確かに、リストされたコードで再エクスポートするchai-as-promised用のラッパーパッケージを作成することはできます(幸いにも、それはフォークする必要はありません)。私は、Mocha/Chaiバンドルにセットアップファイルが必要であるという考えに慣れてきました。そこに余分な行がいくつかあるのは問題ではありません。 – estus
@estusこのコードはどこに置かれますか? – Willa