如何檢查函式是否回傳多個可能值之一?
我目前的測驗功能:
const { randomTense } = require('./src/models/functions');
test('Category exists', () => {
const data = randomTense()
console.log(data.category)
expect(data.category).toMatch('past' || 'present' || 'future' );
});
uj5u.com熱心網友回復:
您可以使用如下所示的“toContain”方法。
請注意,這不是一個好的測驗,因為它不是詳盡的或確定性的。如果您data.category有時是別的東西,這可能會隨機失敗。試想一下,該函式randomTense回傳按隨機順序四串:past,present,future和this is a bug。在這種情況下,此測驗將通過四次中的三次,并且由于它是隨機的,因此無法(更難)預測它何時失敗。
測驗隨機函式并不是真正的事情。在這些情況下,您通常做的是將函式分成更小的部分并模擬隨機部分。
因此,與其擁有一個函式來完成所有事情以及隨機選擇,不如將所有邏輯都去掉,只留下通常只有一行的隨機選擇。然后您為您的測驗模擬該功能并測驗回傳選項/列舉的其他函式。
const { randomTense } = require('./src/models/functions');
const POSSIBLE_VALUES = ['past', 'present', 'future'];
test('Category exists', () => {
const data = randomTense();
expect(POSSIBLE_VALUES).toContain(data.category);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/345886.html
標籤:javascript 单元测试 测试 玩笑 自动化测试
上一篇:在單擊SVG地圖的位置打開模態
