Я пытаюсь использовать co-mocha
, чтобы проверить некоторые функции вложенных генераторов в моем приложении koa
. Класс работает нормально во время выполнения, но когда я пытаюсь проверить функциональность, я не могу заставить вложенный генератор работать в моем тесте.Как проверить вложенные генераторы ES6 с помощью Mocha?
Класс испытывается:
import Promise from 'bluebird'
class FooService {
_doAsync(){
return new Promise((resolve) => {
setTimeout(() => {
resolve({
foo: 'FOO'
})
}, 500)
})
}
create(){
console.log('This never gets logged')
let self = this
return function*(){
console.log(`This doesn't either`)
return yield self._doAsync()
}
}
}
export default new FooService()
Test File
import fooService '../services/foo-service'
import Chai from 'chai'
let expect = Chai.expect
describe('Testing generators',() => {
it('Should just work', function *(){
console.log('This log never happens')
let result = yield fooService.create()
expect(result).to.equal({foo: 'FOO'})
})
})
Я бегу мокко ж/--require co-mocha
и Node 4.2.6
Пока испытания полный вес/o, NONE из вышеприведенной консоли больше регистрируется, и поэтому я уверен, что фактические теги t генератор никогда не работает вообще.
Если я пытаюсь с помощью пакета НМП, mocha-generators
вместо этого, в то время как я получаю журнал внутри испытательного генератора, основной генератор вернулся из create()
метода на службе никогда не выстреливает ...
Что я делаю неправильно??
Вы, вероятно, хотите 'выход * fooService.create()() ' – Bergi
Никогда не экспортируйте экземпляры классов! Либо экспортируйте класс, либо не используйте синтаксис 'class' и создайте вместо него литерал объекта. – Bergi
@Bergi Как бы изменилась эта строка, изменив что-нибудь (в случае 'co-mocha'), когда генератор, на котором сидит строка, никогда не появляется в первую очередь? – RavenHursT