2015-02-09 4 views
1

Я пытаюсь обмануть бэкэнд с помощью ngMockE2E для целей разработки, но с этой ошибкой «Неожиданный запрос: GET views/home.html». Кроме того, я использую UI-маршрутизатор от маршрута services.ThanksНеожиданный запрос: GET

index.html

<!doctype html> 
<html lang="en" ng-app="userApp"> 
<head> 
<meta charset="utf-8"> 
<title> Angular App</title> 
<link rel="stylesheet" type="text/css" href="css/bootstrap.css"> 
<link rel="stylesheet" type="text/css" href="css/all.css"> 
<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript" src="js/angular.min.js"></script> 
<script type="text/javascript" src="js/angular-cookies.js"></script> 
<script type="text/javascript" src="js/ui-router.js"></script> 
<script type="text/javascript" src="js/angular-resource.js"></script> 
<script type="text/javascript" src="js/angular-mocks.js"></script> 
<script type="text/javascript" src="js/app.js"></script> 
<script type="text/javascript" src="js/controllers.js"></script> 
<script type="text/javascript" src="js/services.js"></script> 
</head> 
<body> 
<div class="container"> 
    <div class="row"> 
     <header id="header"> 
      <div class="logo col-sm-12 col-lg-4"> 
       <h1>logo</h1> 
       <ul class="nav nav-pills pull-right"> 
        <li><a ui-sref="home" class="btn btn-success" ui-sref-active="btn-warning">Home</a></li> 
        <li><a ui-sref="login" class="btn btn-success" ui-sref-active="btn-warning">Login</a></li> 
        <li><a ui-sref="register" class="btn btn-success" ui-sref-active="btn-warning">Register</a></li> 
       </ul> 
      </div> 
      <div class="text-area col-sm-12 col-lg-8"> 
       <h2>Test</h2> 
      </div> 
     </header> 
     <section id="main"> 
      <div class="container"> 
       <div class="row"> 
        <div ui-view></div> 
       </div> 
      </div> 
     </section> 
     <footer id="footer"> 
      <div class="container"> 
       <div class="row"> 
        <p class="text-center">Copyright </p> 
       </div> 
      </div> 
     </footer> 
    </div> 
</div> 
</body> 
</html> 

app.js

(function(ng){ 
var userApp = ng.module("userApp", ["ui.router", "ngMockE2E", "ngResource", "ngCookies", "mainCtrl"]); 
userApp.config(["$stateProvider", "$urlRouterProvider", "$provide", function($stateProvider, $urlRouterProvider, $provide){ 
    $urlRouterProvider.otherwise("/"); 
    $provide.decorator("$httpBackend", ng.mock.e2e.$httpBackendDecorator); 
    $stateProvider 
     .state("login", { 
      url   : "/login", 
      templateUrl : "views/login.html", 
      controller : "loginCtrl" 
     }) 
     .state("register", { 
      url   : "/register", 
      templateUrl : "views/register.html", 
      controller : "registerCtrl" 
     }) 
     .state("home", { 
      url   : "/", 
      templateUrl : "views/home.html", 
      controller : "homeCtrl" 
     }) 
}]); 
userApp.run([ "$httpBackend", function($httpBackend){ 
    var users = [{ "id" : "1", "username" : "[email protected]", "password" : "user1" }]; 
    $httpBackend.expect("GET", "/login"); 
    $httpBackend.when("GET", "/login").respond(users[0]); 
}]); 
})(angular); 
+0

Я думаю, что если вы измените «url:»/«,' на «url:»/home »,' или som Что-то не произойдет. У вас есть $ urlRouterProvider.otherwise ("/"); 'и это вызывает состояние' home', которое, в свою очередь, обращается к 'views/home.html'. Это то, что я думаю, все равно :) –

+0

изменить '' views/home.html "' to '" /views/home.html "', добавить '/' перед URL-адресом –

ответ

1

Вы должны добавить Проходное в каталог просмотров, так $httpBackend услуга не фиксирует запрос:

userApp.run([ "$httpBackend", function($httpBackend){ 
    var users = [{ "id" : "1", "username" : "[email protected]", "password" : "user1" }]; 
    $httpBackend.expect("GET", "/login"); 
    $httpBackend.when("GET", "/login").respond(users[0]); 

    $httpBackend.whenGET(/^views\//).passThrough(); // ignore requests to the views directory 
}]); 
Смежные вопросы