我正在向重構之前的遺留代碼庫添加集成測試。在這種情況下,上傳文件。node.js無法在集成測試中上傳文件
測試:
it('uploads a photo at the specified index', done => {
chai.request(server.instance)
.post('/profile/photo/0')
.set('Access-Token', `${token}`)
.set('API-Key', testConfig.apiKey)
.field({contentId: 'foobar'})
.attach('file', fs.readFileSync(__dirname + '/logo.png'), 'file')
.end((err, res) => {
console.log(JSON.stringify(res.body))
res.should.have.status(200)
done()
})
})
端點被測試生產工作正常。但要獲得測試通過,我在multer
模塊的make-middleware.js
註釋掉以下行:
if (!includeFile) {
// appender.removePlaceholder(placeholder)
// return fileStream.resume()
}
作爲缺乏經驗與節點,我一定是錯過了一些配置什麼的。我怎樣才能讓我的測試通過(無需修改外部模塊的代碼)?
你100%確信'fs.readFileSync(__目錄名稱+ '/logo.png')'讀取文件?順便說一句:使用'path.join(__dirname,'logo.png')'是個好主意,所以它不會在Windows上失敗。 – pawel
@pawel是的,絕對相信它被正確讀取。好的關於窗戶的提示,謝謝。 –
您是否使用了發佈相同文件('logo.png')的端點(此測試之外)?似乎你已經在你的服務器上爲你的服務器定義了一個文件過濾器,並且該文件沒有通過它... – cviejo