Was ist der einfachste Weg, um scenics.js zu modifizieren, um eine AJAX-Anfrage während eines End-to-End-Tests nachzuahmen?Wie spottet man eine AJAX-Anfrage?
<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="utf-8">
<title>My Test AngularJS App</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular-resource.min.js"></script>
<script language="javascript" type="text/javascript">
angular.module('myApp', ['ngResource']);
function PlayerController($scope,$resource){
$scope.player = $resource('player.json').get();
}
</script>
</head>
<body ng-controller="PlayerController">
<p>Hello {{player.name}}</p>
</body>
</html>
Spieler bekommen richtig geholt aus einer Datei mit dem Namen player.json auf dem Server und der folgende Test besteht. Wie übergebe ich verschiedene json in diesen Test und verhindere das Abrufen zurück zum Server?
/*
How do I pass in
player.json -> {"name":"Chris"}
*/
describe('my app', function() {
beforeEach(function() {
browser().navigateTo('../../app/index.html');
});
it('should load player from player.json', function() {
expect(element('p:first').text()).
toMatch("Hello Chris");
pause();
});
});
Mein Punkt ist, dass ich nicht das ngMockE2E Beispiel in der Dokumentation sehen. Ich suche nach den wenigen Codezeilen, die zu scenarias.js hinzugefügt werden müssen. – Chris
Sie sollten scenario.js nicht ändern müssen, wenn ich Ihre Frage richtig verstanden habe. Caio's Antwort ist die Standardmethode, um mit dieser Situation umzugehen. –
Ok. Lass mich deutlich sein. Ich verstehe nicht, was ich tun soll, was Caio empfiehlt. Es gibt einige magische Dinge, die von der Dokumentation übernommen werden, wie zum Beispiel "Danach die App mit diesem neuen Modul bootstrappen". Wie macht man das? – Chris