私はAngularアプリを実装しています。e2e テストでは、サーバーへのリクエストの一部をモックし、一部を通過させたい、つまりe2e httpBackendを使用したい。
HttpBackend の使用方法の Vijittas の例を次に示します。
` http://jsfiddle.net/vojtajina/DQHdk/ `
さて、ここにジレンマがあります: 私がテストしているとき、私は自分のアプリケーションを開発モジュールでブーストラップしたいのです。
<html ng-app="AppDevModule">
サーバーを実行するときに、製品モジュールを含める必要があります。
<html ng-app="AppCoreModule">
しかし、開発モードと本番モードを切り替えたいときにいつでも HTML を変更するのは合理的ではありません。
開発モジュールを含めるためのコード スニペットを提供しますが、問題と開発アプリの組み込みについては何も言及していません。
角睾丸を使用しています。次のようにe2eテストで構成しようとしました:
describe("DHCP Client e2e. ", function () {
beforeEach(function () {
var fakeAppModule = angular.module('AppCoreModule', ['AppCoreModule', 'ngMockE2E']);
fakeAppModule.run(function ($httpBackEnd) {
var networkInterface = [
{
'secondarySubnets':[
{"dhcpOfferOptions":{"dnsServers":["8.8.8.8"], "offerTime":"400", "leaseTime":"600"}, "rangesLimits":[],
"network":"192.168.0.0", "slash":"24", "gateway":"192.168.0.1",
"isDynamic":"dynamic", "description":"asdsadsa"}
]
},
{
'secondarySubnets':[
{"dhcpOfferOptions":{"dnsServers":["8.8.8.8"], "offerTime":"400", "leaseTime":"600"}, "rangesLimits":[],
"network":"192.168.0.0", "slash":"24", "gateway":"192.168.0.1",
"isDynamic":"dynamic", "description":"asdsadsa"}
]
}
];
$httpBackEnd.whenGET('/^\/view\//').respond(200, '<div></div>');
$httpBackEnd.whenGET('/r/networkInterface').respond(200, networkInterface);
$httpBackEnd.whenGET('./../main/webapp/r/networkInterface').respond(200, networkInterface);
});
fakeAppModule.config(function ($provide) {
$provide.decorator('$httpBackend', angular.mock.e2e.$httpBackendDecorator);
});
});
しかし、思い通りにはいかない。