Jaki jest najprostszy sposób modyfikacji pliku scenarios.js w celu sfałszowania żądania AJAX podczas testu end-to-end?Jak wyśmiać żądanie AJAX?
<!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>
Gracz pobiera poprawnie pobrane z pliku o nazwie player.json na serwerze i następujące przejścia testowe. W jaki sposób mogę przekazać inny json do tego testu i zapobiec pobieraniu z powrotem na serwer?
/*
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();
});
});
Chodzi mi o to, że nie patrz przykład ngMockE2E w docs. Szukam kilku linii kodu, które można dodać do pliku scenarios.js. – Chris
Nie powinieneś modować skryptu scenario.js, jeśli dobrze rozumiem twoje pytanie. Odpowiedź Caio jest standardowym sposobem radzenia sobie z tą sytuacją. –
Ok. Pozwól mi wyjaśnić. Nie rozumiem, jak zrobić to, co zaleca Caio. Jest trochę magii, która jest zakładana przez dokumentację taką jak "Później, ładuj swoją aplikację z tym nowym modułem.". Jak to zrobić? – Chris