首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS $httpBackend验证无交互

AngularJS $httpBackend验证无交互
EN

Stack Overflow用户
提问于 2016-03-25 23:35:34
回答 1查看 47关注 0票数 0

我正在寻找一种方法来评估$httpBackend,看看是否有任何交互。我希望确保在测试用例中的这一点上从未调用过它。我已经检查了这里的文档:https://docs.angularjs.org/api/ngMock/service/$httpBackend,但没有找到答案。

使用$http类

代码语言:javascript
复制
class HomeService {
  /*@ngInject*/
  constructor ($http, $log) {
    this.http = $http;
    this.log = $log;
  }

  submit(keycode) {
    this.log.log("submitting key code: " + keycode);
    if (keycode === "") {
      return false;
    }
    this.http.post(`/api/keycode/${keycode}`).then ( (response) => {
      this.log.log(response);
      return true;
    });
  }
}

export default HomeService;

目前为止的测试用例。

代码语言:javascript
复制
import HomeService from './home.service';

describe('HomeService', () => {
  let homeService, $httpBackend;

  beforeEach(inject(($injector) => {
    $httpBackend = $injector.get('$httpBackend');
  }));

  afterEach(function() {
   $httpBackend.verifyNoOutstandingExpectation();
   $httpBackend.verifyNoOutstandingRequest();
 });

  describe('submit', () => {

    it('submit empty keycode', () => {
      homeService = new HomeService($httpBackend, console);
      let value = homeService.submit("");
      expect(value).to.be.false;
      //valid no interactions with $httpBackend here!
    });
  });
});
EN

回答 1

Stack Overflow用户

发布于 2016-03-26 02:27:38

即使

代码语言:javascript
复制
  afterEach(function() {
   $httpBackend.verifyNoOutstandingExpectation();
   $httpBackend.verifyNoOutstandingRequest();
 });

可能足以抛出不想要的请求,将错误绑定到特定的规范使用:

代码语言:javascript
复制
expect($httpBackend.verifyNoOutstandingExpectation).not.toThrow();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36222976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档