我是javascript/nodejs的新手,我需要通過mocha/nodejs在4mb的限制範圍內測試一個有效載荷,並且我使用了一個函數來生成長度爲〜4mb +的字符串來模擬有效載荷並將其傳遞給請求作爲有效載荷。但是,我收到超時異常Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
。這可能是因爲這種方法是無效的,因爲請求生成時間本身太長了......我試圖增加等待時間,但是徒勞無功。如何在運行時爲JavaScript中的請求生成負載?
it('expected: handle request made with payload exceeding REQUEST_LIMIT of 4mb', (done) => {
chai.request(server).post('/payload').send({ data: payload(4520000) }) // payload exceeds RATE_LIMIT of 4mb
.set('content-type', 'plain/text')
.end((error, response) => {
expect(response).to.have.status(500);
// return expect(response).to.eventually.have.status(500);
done();
});
});
請注意,我也用柴作爲許諾的,並沒有爲我工作:
return expect(response).to.eventually.have.status(500);
我沒有看到'npm install'會如何改變超時。我可以看到如何在你的'package.json'中設置一個'test''腳本',該腳本硬編碼「mocha ./tests/ -t 3000',然後忘記使用'npm run ...'(或'npm test')會是一個問題。而且,如果是我,我仍然希望僅在本地增加超時,而不是整個套件,除非您確實有整個套件需要更高的超時時間。 – Louis
你是對的,它應該是具體的測試案例。我已經通過反饋更新了答案,謝謝! –