Bu işlevin tanımlandığı aynı modül içinde çağrılan bir işlevi saptamanın bir yolunu anlayamıyorum (saplama çalışmıyor gibi görünüyor). İşte bir örnek:Aynı modülden çağrılan Stub modül işlevi
myModule.js:
'use strict'
function foo() {
return 'foo'
}
exports.foo = foo
function bar() {
return foo()
}
exports.bar = bar
myModule.test.js:
'use strict'
const chai = require('chai')
const sinon = require('sinon')
chai.should()
const myModule = require('./myModule')
describe('myModule',() => {
describe('bar',() => {
it('should return foo',() => {
myModule.bar().should.equal('foo') // succeeds
})
describe('when stubbed',() => {
before(() => {
sinon.stub(myModule, 'foo').returns('foo2') // this stub seems ignored
})
it('should return foo2',() => {
myModule.bar().should.equal('foo2') // fails
})
})
})
})
Bu (neredeyse) stubbable değildir Java statik fonksiyonlar hatırlatıyor.
Yapmaya çalıştığım şeyi nasıl elde edeceğime dair bir fikriniz var mı? Farklı bir modülde foo
çıkarımı çalışacağını biliyorum, ama burada yapmaya çalıştığım şey bu değil. Ayrıca, this
anahtar kelimesiyle bar
yönteminde foo
yöntemini çağırmanın da işe yarayacağını biliyorum, bu bağlamda O this
kullanımına doğru şaşkınım (OOP kullanmıyorum).
Harika, teşekkürler. “Export” kelimesini kullanmak biraz çirkin, çünkü “bu” ile aynı işi yapıyor ama bunu yapacak. Statik bir bağlamda 'bunu 'kullanmak aklımı biraz karıştırdı. – Simon
En çok hoşgeldin dostum! –
Kaynak kodunuzu değiştiremezseniz ne olur? – nbkhope