実際には何も嘲笑せずにAngularyJSモックを使用してください
質問
私は私たちのアプリのテストを書いています、そして私はAngularjs-Mocks.jsを含めていますので、それに付属の素敵なDSL関数を使うことができます。
しかし、私は常にフラックス内のクライアントのバックエンドでこのアプリを統合しているので、実際に$ HTTPリクエストを模擬したくない、そして私は実際の回答からテストしたいです。
この状況で実際のHTTPバックエンドを使用する最善の(最も簡単な)方法は何ですか?
編集:
これを使用する潜在的な解決策を見つけました:
.
$httpBackend.whenPOST(/.*/).passThrough()
しかし、私が以下に言及しているように、それは働いていない、壊れている?このエラー:
.
Error: Unexpected request: POST /some/url/here No more request expected
ここで問題を開きました。 https://github.com/angular/angular.js /問題/ 1434
解決
私は問題に対する迅速で汚れた解決策を考え出した:$ httpbackendが上書きされている行をコメントアウトする(angular-mocks-1.0.2.jsの1365)。
angular.module('ngMock', ['ng']).provider({
$browser: angular.mock.$BrowserProvider,
$exceptionHandler: angular.mock.$ExceptionHandlerProvider,
$log: angular.mock.$LogProvider,
//$httpBackend: angular.mock.$HttpBackendProvider,
$rootElement: angular.mock.$RootElementProvider
}).config(function($provide) {
$provide.decorator('$timeout', function($delegate, $browser) {
$delegate.flush = function() {
$browser.defer.flush();
};
return $delegate;
});
});
.
これは他の何かを壊しますが、それは私がテストする必要があるものをテストすることができ、そしてプロダクションアプリに影響を与えないので、私とは大丈夫です。うまくいけば、将来的にこれを行う方法があるでしょう。
所属していません StackOverflow