好吧,如果我没有使用模拟后端,那么我的量角器测试工作,当我手动测试功能时,一切都按预期工作(即使使用模拟后端)。唯一不起作用的是带有$ 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存在问题,或者至少与路由一样,因为点击后不应该加载该页面。
答案 0 :(得分:0)
嗯,我很抱歉浪费每个人的时间。我提供了字符串" 9988776655440"当我期待" 9988776655000"。出于某种原因,调试器没有向我显示错误的请求,所需要的只是在这里查看我的帖子以确认字符串不匹配。