как я могу написать модульный тест для своих метеорных методов?

Я нашел это немного сложным и еще более сложным, если бы я написал свой meteor methods в папке /lib, я хочу проверить из тестовой папки сервера мои методы (модульный тест), но заглушка this.userId, а также отладка или отображение журналов на стороне сервера не помочь слишком много.

У меня было слишком много проблем с этим, я использую мохей со скоростью, кто-нибудь может мне помочь? Кто-нибудь знает, как я могу записать единицы измерения метеорных методов?


person Zilev av    schedule 02.04.2015    source источник
comment
См. обсуждение здесь. Возможно, callInContext это то, что вам нужно, но я не уверен.   -  person David Weldon    schedule 03.04.2015
comment
Большое спасибо, Дэвид, в ссылке, которую вы мне предоставили, слишком много полезной информации.   -  person Zilev av    schedule 23.04.2015


Ответы (1)


Mocha не поддерживает модульные тесты, в настоящее время поддерживает только Jasmine. Это пример того, как вы могли бы написать модульный тест в Jasmine для сервера и использовать идентификатор пользователя.

  it("should return premium content to logged in users", function () {

// SETUP
var thisContext = {
  userId : true
};

var expectedCursor = 'chapter_cursor1';
var _query = true, _modifiers = true;
Chapters.find = function(query, modifiers) {
  _query = query;
  _modifiers = modifiers;
  return expectedCursor;
};

// EXECUTE
var actualCursor = Meteor.publishFunctions['chapters'].apply(thisContext);

// VERIFY
expect(actualCursor).toBe(expectedCursor);
expect(_query).toBe(undefined);
expect(_modifiers).toBe(undefined);

});

Взято отсюда: https://github.com/xolvio/Letterpress/blob/master/tests/jasmine/server/unit/chaptersSpec.js#L3

person Xolv.io    schedule 04.04.2015
comment
Руководство по тестированию Meteor, это Meteor.publishFunctions['chapters'].apply(thisContext); относится только к функциям публикации???? а для метеорных методов??? - person Zilev av; 06.04.2015
comment
вот хороший пример, Meteor.methodMap.serverMethod.call(thisContext), stackoverflow.com/questions/28796568/ - person Zilev av; 07.04.2015
comment
ссылка не работает, а Meteor.publishFunctions не определен на стороне моего сервера метеора 1.2.1 - person Alexander Skiller; 26.07.2016