量角器测试失败,但手动测试相同的东西工作(可能与$ httpBackend相关)

时间:2015-09-15 18:34:42

标签: javascript angularjs automation jasmine protractor

好吧,如果我没有使用模拟后端,那么我的量角器测试工作,当我手动测试功能时,一切都按预期工作(即使使用模拟后端)。唯一不起作用的是带有$ httpBackend的量角器测试。

我有以下测试:

employee.$update().then(function() {
    employees.push(employee);
    $location.path('/');
});

现在,浏览器打开(默认URL指向员工的列表视图),单击正确的按钮并打开员工的添加/编辑表单。它将正确的信息输入到输入框中,然后单击按钮,但此时它会崩溃。上面代码末尾列出的expect语句,以及在该代码失败后的所有其他期望块,因为它的行为就好像列表视图没有加载,根据我的服务它应该加载:

function appe2ePrep($httpBackend, $location) {
    $httpBackend.whenGET("app/components/employee/employee-list.html").passThrough();
    $httpBackend.whenGET("app/components/employee/employee-detail.html").passThrough();
    var employees = [
        {jmbg:"1", name: "Mirko", surname: "Ivovkić"},
        {jmbg:"2", name: "Nikola", surname: "Tešić"},
        {jmbg:"3", name: "Robert", surname: "Stefanović"},
        {jmbg:"4", name: "Aleksa", surname: "Trifković"}
    ];
    // All employees
    $httpBackend.whenGET(dbEndpoint + "?apiKey=" + appKey).respond(employees);

    // adds a new employee
    $httpBackend.whenPUT(dbEndpoint + "/9988776655440?apiKey=" + appKey).respond(function (method, url, data) {
        return [200];
    });
}

我的员工是$资源服务,我会避免列出所有其他代码,因为它与使用真实后端以及手动使用应用程序时的工作方式相同。

现在,我想添加的一件事是我在appe2e模块中运行的功能:

{{1}}

据我所知,$ location存在问题,或者至少与路由一样,因为点击后不应该加载该页面。

1 个答案:

答案 0 :(得分:0)

嗯,我很抱歉浪费每个人的时间。我提供了字符串" 9988776655440"当我期待" 9988776655000"。出于某种原因,调试器没有向我显示错误的请求,所需要的只是在这里查看我的帖子以确认字符串不匹配。