1
みんな!jestを使ってsupertestでモジュールをモックする方法は?
JestとSupertestを使用してノードサーバーコードをテストしています。ここで
がある私のserver.js
// server.js
const config = require('./lib/config')
...
const app = new koa()
...
module.exports = app
私はここに私のserver.test.js
// server.test.js
const supertest = require('supertest-as-promised')
describe('xxxxxx',()=>{
let app,server
beforeEach(()=>{
jest.mock('lib/config',()=>({
uri: '/path',
apiPrefix: '/prefix'
}))
app = require('server')
})
afterEach(()=>{
server && server.close()
app=null
server=null
})
it('should success', async()=>{
server || (server = app.listen(0))
const request = supertest(server)
request().get('path/prefix_home').expect(200)
})
})
テストを実行している間、私は、server.js
でconfig
を印刷しているが、印刷情報がある、私はSupertestを使用しながら、config.js
をモックとしたいですjest.mock
が機能しないことを示しています(パスはlib/config
です)。
このような状況では、誰でもSupertestを使用してconfig.js
を嘲笑する考えはありますか?
をSRCに次のテストフォルダにある、あなたは'必要な場合。/ libに/ config'をし、あなたのテストで ' lib/config'であり、それは厳密に等しい文字列ではありません。問題はここにある可能性があります – Fefux