gpt4 book ai didi

javascript - 如何在 Jasmine.js 中编写场景

转载 作者:行者123 更新时间:2023-11-30 16:23:21 25 4
gpt4 key购买 nike

我正在做一个项目,在这个项目中我必须用 Jasmine 测试我的 js 代码。我这样写我的测试。

describe("Function: foo() --- File: foo.js", function() {
it("if input is integer", function () {
var result = foo(123);
expect(result).toBe(123);
});

it("If input is string", function () {
var result = foo('String');
expect(result).toBe('String');
});

it("If input is empty string", function () {
var result = foo('');
expect(result).toBe('');
});

});

如代码所示,我一次又一次地重复相同的“它” block 。唯一改变的是“toBe”中的描述、函数输入和输出。我想问一下是否有一种方法可以将我的场景添加到列表/字典中并像这样在我的测试中使用它们而不使用任何 for 循环

describe("Function: foo() --- File: foo.js", function() {
scenarios = [
{description: "if input is integer", input: 123, output: 123},
{description: "if input is String", input: "String", output: "String"},
{description: "if input is empty string", input: '', output: ''},
];

//This will run for each scenario in above list
it(this.description, function () {
var result = foo(this.input);
expect(result).toBe(this.output);
});

});

在这种情况下,有人可以帮助我吗?

最佳答案

你可以通过 using 实现你想要的:

describe("Function: foo() --- File: foo.js", function() {
var scenarios = [
{description: "if input is integer", input: 123, output: 123},
{description: "if input is String", input: "String", output: "String"},
{description: "if input is empty string", input: '', output: ''},
];

scenarios.map(function(value) {
it(value.description, function() {
var result = foo(value.input);
expect(result).toBe(value.output);
});
});
}

关于javascript - 如何在 Jasmine.js 中编写场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34435242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com