惩戒API和httpBackend [量角器] [英] Mocking API with httpBackend [Protractor]

查看:160
本文介绍了惩戒API和httpBackend [量角器]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个REST API一个前端应用程序。我用量角器为终端到终端的测试与嘲笑了API。我能嘲笑的authToken API响应并导航到URL选择,但在注定URL显示的页面呈现空。这里是我的code:

I'm developing a frontend app for a REST API. I'm using Protractor for end-to-end tests with the API mocked out. I was able to mock AUTHtoken API response and navigate to chosen URL, but page displayed under destined URL renders empty. Here's my code:

describe('e2e tests', function() {

it('FO tests', function() {

browser.addMockModule('WebClientApp', function() {
  console.log('test');
  angular.module('WebClientApp', ['ngMockE2E'])
  .run(function($httpBackend) {
    console.log('test2');

    $httpBackend.whenPOST('http://0.0.0.0:9000/api/organizations').respond(200);
    $httpBackend.whenPOST('/api/auth/get_resource_by_token').respond(200);
    $httpBackend.whenGET('/api/auth/current_resource').respond(200);
    $httpBackend.whenGET(/.*/).respond(200);
  });

});
browser.getRegisteredMockModules();

browser.get('http://0.0.0.0:9000/#/organizations/profile');

browser.pause();
});
});

可悲的是,量角器控制台不会在页面呈现提供有关错误的信息。

Sadly, Protractor console does not provide information about errors during page render.

推荐答案

其实,用响应状态200并不能确保你已经验证。你需要传递和处理一些象征性/会话头。

Actually, response with status 200 does not ensure you have authenticated. You need to pass and handle some token/session header.

还有 $ httpBackend.flush(); 是必要的。然后,测试应该通过。

Also $httpBackend.flush(); is needed. Then test should pass.

$httpBackend.expectGET('http://0.0.0.0:9000/#/organizations/profile');
$httpBackend.flush();

更多的解释将上找到的最后一个它(...)块的角为$ doc的httpBackend

这篇关于惩戒API和httpBackend [量角器]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆