[英]'it' in mocha does not run on using await
mocha中的“it”不會使用await運行。
我使用函數異步讀取文件並根據返回的值運行多個循環來處理我的測試。 我還在循環中多次使用相同的文件讀取函數。 我需要使用await來從該函數中獲取已解析的值。 如果我刪除await然后“it”運行但我的功能仍未解決。
const subList1 = [
{name: 'value1', info: 'value1'},
{name: 'value2', info: 'value2'},
{name: 'value3', info: 'value3'},
]
const subList2 = [
{name: 'value1', info: 'value1'},
{name: 'value2', info: 'value2'},
{name: 'value3', info: 'value3'},
]
const subList3 = [
{name: 'value1', info: 'value1'},
{name: 'value2', info: 'value2'},
{name: 'value3', info: 'value3'},
]
const mainList = [
subList1, subList2, subList3,
]
function getList() {
return mainList;
}
describe('Test', async function () {
const list = await getList();
list.forEach(mainListItem => {
describe('Main Test', function () {
mainListItem.forEach(subListItem => {
describe(subListItem.name, function () {
let valueInCaps;
const name = subListItem.name;
console.log(`name: ${JSON.stringify(name)}`);
before(function () {
valueInCaps = subListItem.info.toUpperCase();
})
it(name, function () {
console.log(valueInCaps);
})
})
})
});
});
})
預期:
name: "value1"
name: "value2"
name: "value3"
name: "value1"
name: "value2"
name: "value3"
name: "value1"
name: "value2"
name: "value3"
Test
Main Test
value1
VALUE1
√ value1
value2
VALUE2
√ value2
value3
VALUE3
√ value3
Main Test
value1
VALUE1
√ value1
value2
VALUE2
√ value2
value3
VALUE3
√ value3
Main Test
value1
VALUE1
√ value1
value2
VALUE2
√ value2
value3
VALUE3
√ value3
實際:
name: "value1" name: "value2" name: "value3" name: "value1" name: "value2" name: "value3" name: "value1" name: "value2" name: "value3"
如果你進入摩卡網站,你會找到一個如何構建測試的好例子。 我相信你的問題是你沒有在測試中斷言任何東西。 你沒有測試任何假設。
// require an assertion library
var assert = require('assert');
describe('Test', async function () {
const list = await getList();
list.forEach(mainListItem => {
describe('Main Test', function () {
mainListItem.forEach(subListItem => {
describe(subListItem.name, function () {
let valueInCaps;
const name = subListItem.name;
console.log(`name: ${JSON.stringify(name)}`);
before(function () {
valueInCaps = subListItem.info.toUpperCase();
})
it(name, function () {
console.log(valueInCaps);
assert.equal(someCondition)
})
})
})
});
});
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.