ember.js - 伪装者和查询参数

标签 ember.js integration-testing qunit

我正在使用 Trek 中的伪装者库只要我没有任何查询参数,就会成功。

我现在已经正式花了 4 个小时盯着下面的代码,但无法让它工作。我正在定义一个似乎没有被命中的网址。但是,当我查看尚未捕获的调用时,它会返回我定义的确切网址!如果有人能帮助我解决这个问题,那就太好了。

我的测试代码:

var server;

module("Check Search Index page", {
  setup: function() {
    'use strict';

    Ember.run(function() {
      App.reset();

      server = new Pretender(function() {
        this.get('/api/v1/holidays.json?display_type=detail&page=1&sort%5Bprice%5D=&sort%5Bname%5D=&sort%5Brating%5D=&filter%5Bduration_min%5D=1&filter%5Bduration_max%5D=32&filter%5Bprice_min%5D=50&filter%5Bprice_max%5D=3800&filter%5Bbus%5D=true&filter%5Bflight%5D=true&filter%5Bself_transportation%5D=true', function (request) {
          return [200, {'Content-Type': 'application/json'}, '{"holidays":[{"id":507,"name":"App. Elena"}'];
        });
      });

      server.unhandledRequest = function(verb, path, request) {
        console.log("=== BEGIN UNHANDLED REQUEST ===");
        console.log('verb: ' + verb);
        console.log('path: ' + path);
        console.log('request: ' + request);
        console.log("=== END UNHANDLED REQUEST ===");
      };
    });
  },

  teardown: function() {
    'use strict';

    server.shutdown();
  }
});

test('Search page', function() {
  'use strict';

  visit('/search/index');
  andThen(function() {
    ok(find('p:contains("Bepaal uw zoek criteria")').length, 'Search page is showing');
  });
});

我在控制台中收到的错误消息:

.=== BEGIN UNHANDLED REQUEST ===
verb: GET
path: /api/v1/holidays.json?display_type=detail&page=1&sort%5Bprice%5D=&sort%5Bname%5D=&sort%5Brating%5D=&filter%5Bduration_min%5D=1&filter%5Bduration_max%5D=32&filter%5Bprice_min%5D=50&filter%5Bprice_max%5D=3800&filter%5Bbus%5D=true&filter%5Bflight%5D=true&filter%5Bself_transportation%5D=true
request: [object Object]
=== END UNHANDLED REQUEST ===

最佳答案

您不应在请求定义中定义查询参数。为了使上面的代码正常工作,终点的定义应该是:

  server = new Pretender(function() {
    this.get('/api/v1/holidays.json?', function (request) {
      return [200, {'Content-Type': 'application/json'}, '{"holidays":[{"id":507,"name":"App. Elena"}'];
    });
  });

关于ember.js - 伪装者和查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26938182/

相关文章:

javascript - Sinonjs fakeserver - 多个ajax调用

ember.js - 删除记录后列表未更新

ember.js - Ember-cli 如何知道从哪里导入 'ember-data'

java - 如何执行两次 Maven Integration-Test Lifecyle 阶段

spring - 具有@Secured 的 API 的集成测试

javascript - 如何在解决 Promise 时运行 qunit 断言

javascript - {{each}} 中的 {{link-to}} 没有删除 ember 中的旧模板

javascript - Ember 1.13,组件中的类名顺序

c# - 使用 Unity IoC 进行 MVC 集成测试

unit-testing - Qunit 测试位于包含多个 Controller 的文件中的 ember Controller ?