我目前正在改進我們feathers.js/node.jsapi 的分支/功能覆寫率(使用 測驗jest)。目前有一個服務的屬性應該只接受某些值,但尚未實作。
有效值類似于:
const validValues = ["System", "Engineering", "Production"]
如果提供了其中一個值,則 api 應接受請求并回傳有效回應。
如果一個值像
const invalidValue = ["Some", "Invalid", "Value"]
已提供,API 應拒絕該請求。
由于尚未實作值驗證,因此想法是實作一個測驗,如果 api 接受的無效值(如無效值)則失敗,并確保 api 只接受有效值。
it("test service for invalid values", async () => {
const invalidValues = ["Some", "Invalid", "Value"];
invalidValues.map(async (invalidValue) => {
await expect(async () => {
await app.service("release-types").create({
someProperty: "some Value"
propertyWithValueConstraint: invalidValue,
});
}).rejects.toThrow();
});
});
uj5u.com熱心網友回復:
問題是它[].map不會異步運行,因此不會捕獲斷言。你有兩個選擇:
- 使用await Promise.all(promises):
it("test service for invalid values", async () => {
const invalidValues = ["Some", "Invalid", "Value"];
await Promise.all(invalidValues.map(async (invalidValue) => {
await expect(async () => {
await app.service("release-types").create({
someProperty: "some Value"
propertyWithValueConstraint: invalidValue,
});
}).rejects.toThrow();
}));
});
- 使用for ... of 回圈
it("test service for invalid values", async () => {
const invalidValues = ["Some", "Invalid", "Value"];
for (const invalidValue of invalidValues) {
await expect(async () => {
await app.service("release-types").create({
someProperty: "some Value"
propertyWithValueConstraint: invalidValue,
});
}).rejects.toThrow();
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/491710.html
標籤:javascript 节点.js 单元测试 开玩笑的 羽毛
上一篇:Expressjavascript單元測驗“TypeError:app.address不是函式”
下一篇:Moq:驗證引數空參考中的物件
