Как я могу использовать методы класса модульного тестирования в Ember-Cli

В моем приложении я хотел бы протестировать метод класса в моей службе 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");
});

person jklina    schedule 23.12.2014    source источник


Ответы (1)


Вы можете получить доступ к методам класса для тестирования следующим образом:

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

Но почему методы класса? Разве служба не должна быть создана?

person Buck Doyle    schedule 24.12.2014
comment
Я создаю объект, который является оболочкой библиотеки Google Places. Я хотел бы получить информацию о месте из базы данных Google с учетом идентификатора места Google. Я не могу придумать причину для создания экземпляра. Возможно, этот объект должен быть Моделью, а не Сервисом? - person jklina; 25.12.2014
comment
Я подумал, что вам придется пройти аутентификацию API или что-то в этом роде, что вы можете сделать в инициализаторе, а затем внедрить службу в любые объекты. - person Buck Doyle; 25.12.2014