1
我正在使用Jest和Supertest来测试我的节点服务器代码。
这里是我的server.js
// server.js
const config = require('./lib/config')
...
const app = new koa()
...
module.exports = app
我想嘲笑config.js
,而我用Supertest,这里是我的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
运行测试一段时间,但打印信息表明jest.mock
没有工作(路径lib/config
是正确的)。
任何人有任何想法嘲笑config.js
在这种情况下使用Supertest?
在'server.js',你需要'/ lib目录/ config'并在测试' lib/config',这不是严格的相等字符串。问题可能在这里 – Fefux