私のAngularアプリでモックバックエンドサービスを使用する最も簡単な方法を本当に探しています。
簡単なアプリを作成する方法を示すサンプルアプリであり、それが仕事をするのに役立ちます。tnx!
この質問に答える例として、バックエンドレス開発のサンプルに $httpBackend を使用したサンプル plunkrを次に示します。
これを機能させるためにplnkrに追加した主なものは次のとおりです。
angular-mocks.js
htmlでファイルを参照しました。ngMockE2E
するには、app.js の 3 行目に配列が必要です$httpBackend
に挿入され、特定の URL への GET が要求されたときに何を応答するかをモック バックエンドに伝えるコードが追加されました。これは主に$httpBackendのドキュメントから取られました。.passThrough()
実際にバックエンドにヒットする (モックをバイパスする) 任意の呼び出しに対してa を実行できることに注意してください。これは、バックエンドの一部がすでに機能している場合に特に役立ちます。
以下は、さまざまな例から引き出された基本的なテンプレートです。
'use strict';
(function() {
if( !document.URL.match(/\?nobackend$/) ){
// if not requested only add a blank stub to app dependency.
angular.module('ds.backendMock', []);
} else if (document.URL.match(/\?nobackend$/)) {
// if the query string is present add a module with a run definition to replace the back end.
angular.module('myMock', ['ngMockE2E'])
.run(function($httpBackend) {
// MOCK-RUNNER-CONFIGURATION-.
var DOMAIN = 'example.com',
$httpBackend.whenGET('http://'+DOMAIN+'/someexample')
.respond(
//MOCK-ERROR-STATUS-CODE
//401 //500 //404 //uncomment integer to mock status code and comment out mock data.
//MOCK-DATA-RESPONSE
{
'id' : '1',
'name' : 'MOCK',
'description' : 'mocking',
}
); //end mock.
// various passthroughs. these allow existing services to work, while some are mocked.
$httpBackend.whenGET('./some.html').passThrough();
// dont mock everything else, specify pass through to avoid error.
$httpBackend.whenGET(/^\w+.*/).passThrough();
$httpBackend.whenPOST(/^\w+.*/).passThrough();
});
}
})(angular);