javascript - 如何在 Ember-Cli 中对类方法进行单元测试

标签 javascript ember.js ember-cli ember-qunit

在我的应用程序中,我想测试 GooglePlaceRetriever 服务上的类方法。我知道在 Ember-Cli 中测试时我可以使用 this.subject() 来获取服务的实例,但我不确定如何访问实际的 GooglePlaceRetriever 对象本身来测试我的类方法。

import {
  moduleFor,
  test
} from 'ember-qunit';

moduleFor('service:google-place-retriever', 'GooglePlaceRetrieverService', {
  // Specify the other units that are required for this test.
  // needs: ['service:foo']
});

// Replace this with your real tests.
test('it exists', function() {
  var service = this.subject();
  ok(service);
});

test('fetches place details from Google and converts it to a location', function()
  //Cannot figure out how to access the Class as opposed to the instance.
  var location = ???.findByPlaceId('ChIJaeKPQD_zz4kRy4c8TvnwGIg');

  ok(location.get('name'), "My Name");
});

最佳答案

您可以访问类方法进行测试,如下所示:

var location = this.subject.constructor.findByPlaceId('whatever');

为什么要类方法呢?该服务不应该被实例化吗?

关于javascript - 如何在 Ember-Cli 中对类方法进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27629728/

相关文章:

javascript - 如何加载 PEM 格式的公钥进行加密?

javascript - 如何在模板中运行可观察函数?

javascript - Ember - 使用 JSON 字段自动保存

javascript - 使用 {{#each x in model}} 语法时,Ember 的链接帮助程序未链接到正确的 URL?

ember.js - 具有动态路段名称的Ember路线

javascript - 从外部服务器读取使用脚本 src 标记调用的文件的响应

javascript - 在 JavaScript 和 TypeScript 中使用 !=

javascript - Emberjs 将多个 Controller 加载到一个 Controller 中

ember.js - 如何从 ember-CLI 判断 ember.js 和 ember-data 版本?

ember.js - ember-cli 从仓库内插件运行测试