gpt4 book ai didi

javascript - 是否有任何测试框架支持 TypeScript 中的内联测试?

转载 作者:搜寻专家 更新时间:2023-10-30 21:41:22 26 4
gpt4 key购买 nike

我发现 Karma js 测试的设置和编写有些麻烦,并且发现自己经常因此而忽略编写测试,所以我想知道是否有更好的选择。

因为我使用 typescript ,所以我的梦想是如果我能写出这样的东西:

module adder {
export function add(a, b){
return a + b;
}
}
[Tests]
assert.equal(4, adder.add(2, 2));

我的测试是内联的,当当前文件发生变化时,将直接在我的编辑器中运行。由于 typescript 可以很容易地从最终输出中删除测试,我可以将我的测试与我的代码放在同一个文件中(我认为越接近越好)。是否有任何测试框架支持这一点,如果不支持,需要什么来支持这种情况。

最佳答案

只是一个迂腐的注释 - Karma 是一个测试运行器,而不是一个测试框架。但是,它可以使用 Jasmine、Mocha、QUnit 或您自己的测试框架。

您可以使用装饰器语法来完成此类行为。像这样的东西:

@TestSuite
class AdderTests {
@Test
test1() {
assert.equal(4, adder.add(2,2));
}
@Test
test2() {
assert.equal(0, adder.add(2,-2));
}

}

话虽如此,测试代码的结构与 Jasmine 语法非常相似:

describe('AdderTests', () => {
it('should add 2 and 2', () => {
expect(adder.add(2,2)).toBe(4);
}

});

您的理想,即:

[Test]
assert.equal( ... )

实际上不可能使用 TypeScript 装饰器,甚至是泛型。您正在尝试将属性应用于任意代码行。这必须是一个开始的函数,以便正确使用 JavaScript 范围规则:

[Test]
test1() { assert.equal( ... ) };

关于javascript - 是否有任何测试框架支持 TypeScript 中的内联测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39639595/

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