LINUX.ORG.RU

В топик призываются специалисты по sinon.js

 , , , ,


0

1

А именно мокам и стабам.

Пытаюсь создать стабы для модуля, экспортирующую единственную функцию

Мудуль теста:

var exif       = require('gm-exif')
...
var gmExifStub = sandbox.stub(exif()).yields(null, {'unknown': null})

Тестируемый модуль:


function(cb) {
   exif(file.filePath, cb)
}

Ну и эта фигня не работает. Выдает:

TypeError: undefined is not a function
    at ChildProcess.exithandler (child_process.js:652:7)
    at maybeClose (child_process.js:756:16)
    at Process._handle.onexit (child_process.js:823:5)

Зы. Я так понимаю, что ти-жо холовайчук настолько суров, что не держит свои исходные тескты на гитхабе. И эти люди говорят, нам, что нужно переходить на Go. Да.

По этому я и спрашиваю здесь.

Перемещено beastie из talks



Последнее исправление: EnterpriseMobility (всего исправлений: 1)

Ты уверен, что это тема для Толксов?
И вообще — нефиг тут материться. А то, блин, стабом по мокам получишь, ти-жо тоже мне тут нашёлся.

Stahl ★★☆
()
Ответ на: комментарий от EnterpriseMobility

Оно на JS. Следовательно оно пригодно только для всякой бесполезной фигни. Ни разу ещё не видел чтобы ЖС использовали для чего-то хорошего.
Так что объявляю тебе быстрое и решительное бэ-э-э-э!

Stahl ★★☆
()
Ответ на: комментарий от EnterpriseMobility

Как человек, перепробовавший кучу тест-фреймворков - вуе, мочу, жасмин1,2, а также разные стабы и моки:

наступает момент когда надо перестать копаться в этой фреймворковой помойке и таки начать писать тесты. На обычном js. Обычным кодом. Разве что вот такую функцию для удобства наваять:

function assert(condition, message){
  if(!condition) throw(message);
}
makoven ★★★★★
()
Ответ на: комментарий от makoven

как ты при таком подходе будешь заменять вызов базы данных нужными тебе результатами - т.е. делать подстановку?

EnterpriseMobility
() автор топика
Ответ на: комментарий от EnterpriseMobility

напиши функцию-макет на обычном js и подмени ей оригинал с помощъю обезьянопатчинга. Синоновская лапша нечитаема. cat.shits.meows.runs

makoven ★★★★★
()
Последнее исправление: makoven (всего исправлений: 2)
Ответ на: комментарий от makoven

Это функция асинхронного параллельного процесса async parallel

EnterpriseMobility
() автор топика
Ответ на: комментарий от makoven

Я не понимаю твоего недовольства синоном.

Приведи мне пример аналогов Sinon.yields и returns

И да, приведи мне номальный способ создания стабов для стримов.

Ну чтобы method chaining поддердживался бы

EnterpriseMobility
() автор топика
Ответ на: комментарий от makoven

перепиши это без использования sinon и proxyquire

var proxyquire =  require('proxyquire')
var sinon = require('sinon')

var gmExifStub = sinon.stub().yields(null, {my: 'metaData'})
var foo = proxyquire('./foo', { 'gm-exif': gmExifStub})

освободи мой package.json от парочки ненужных модулей в devDependency, будь мужыком!

EnterpriseMobility
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.