Я борюсь с модульными тестами в Meteor. Я хочу использовать пакет speed, jasmine, но я, должно быть, делаю что-то не так. Тесты не работают, потому что тест не может найти код для тестирования. Тестовый проект доступен на github.
Код, который я хочу протестировать, находится здесь: https://github.com/robvanpamel/coderepository/blob/master/meteor/sandwich-app/server/Services/SandwichService.js
Модульный тест находится здесь: https://github.com/robvanpamel/coderepository/blob/master/meteor/sandwich-app/tests/jasmine/server/integration/spec/SandwichServiceSpec.js Когда я раскомментирую созданный SandwichService в Unit Test, тест работает, это нормально.
Я не делал никаких настроек в метеоре, и я думаю, что это проблема. Вам нужно поместить файл package.js, где вы указываете свой исходный код? Как Jasmine может узнать, где найти SandwichService, который я пытаюсь протестировать? Это также ошибка, которую я получаю. «ReferenceError: SandwichesService не определен»
ИЗМЕНИТЬ
Я смог решить эту проблему и обновил репозиторий кода на GitHub. Ключ был в том, чтобы не использовать прототипы Javascript. поэтому ниже не будет работать
function SandwichesService(){};
SandwichesService.prototype.listSandwiches = function() {
// do stuff here
}
в то время как код ниже работает
SandwichService = {
listSandwiches: function(){
// do stuff here
}
};
Я не очень понимаю, почему? Кто-нибудь может сказать мне?
С уважением и заранее спасибо! Роб