Javascript 是否有任何测试框架支持TypeScript中的内联测试?
我发现Karma js测试在设置和编写上有点麻烦,并且发现自己经常因此而忽略编写测试,所以我想知道是否存在更好的替代方案 因为我使用了typescript,所以我的梦想是如果我能写这样的东西:Javascript 是否有任何测试框架支持TypeScript中的内联测试?,javascript,unit-testing,typescript,Javascript,Unit Testing,Typescript,我发现Karma js测试在设置和编写上有点麻烦,并且发现自己经常因此而忽略编写测试,所以我想知道是否存在更好的替代方案 因为我使用了typescript,所以我的梦想是如果我能写这样的东西: module adder { export function add(a, b){ return a + b; } } [Tests] assert.equal(4, adder.add(2, 2)); 我的测试是内联的,当当前文件发生更改时,将直接在编辑器中运行。因为t
module adder {
export function add(a, b){
return a + b;
}
}
[Tests]
assert.equal(4, adder.add(2, 2));
我的测试是内联的,当当前文件发生更改时,将直接在编辑器中运行。因为typescript可以很容易地从最终输出中删除测试,所以我可以将测试和代码放在同一个文件中(我认为越接近越好)。是否有任何测试框架支持这一点,如果没有,支持这一场景需要什么。只是一个迂腐的注释-Karma是一个测试运行者,而不是一个测试框架。但是,它可以使用Jasmine、Mocha、QUnit或滚动您自己的测试框架 您可以使用decorator语法来完成这种行为。比如:
@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( ... ) };