UnitScript中的unit testing

我知道,TypeScript是一天。 但我很好奇,如果在这里有一些unit testing框架或方式如何编写和运行TypeScript的unit testing?

TypeScript可以编译为JavaScript,我可以为该JavaScript编写testing,但这不是我想要的。

TypeScript不是一种运行时语言。 要执行您的TypeScript代码,您首先需要将其编译为JavaScript; 同样适用于testing它。 您的testing也可以在TypeScript中编译成JavaScript,并使用您最喜欢的testing框架来执行testing。

您可以使用任何现有的JavaScriptunit testing框架,在TypeScript或JavaScript中编写unit testing。

很快,我想现有的框架将得到TypeScript环境定义文件(更新 – 他们有: http : //definitelytyped.org/ ),这将使他们静态键入TypeScript的关注。 同时,您可能需要阅读环境声明并在testing开始时添加一些自己的声明。

或者,您可以使用tsUnit TypeScriptunit testing框架 ,这是一个用TypeScript编写的unit testing框架,所以它可以很好地处理TypeScript(也可以在JavaScript中使用)。

似乎还有另一个testing运行者/框架称为实习生。 https://theintern.github.io/

这里有一篇文章解释如何结合使用TypeScript: https : //www.sitepen.com/blog/2015/03/24/testing-typescript-with-intern/

当您使用TypeScript时,看起来相当有希望,并且您正在寻找支持源地图的unit testing设置。

示例testing:

 import registerSuite = require('intern!object'); import assert = require('intern/chai!assert'); // Assume that we now have a version of our model in TypeScript: import SimpleTodoModel = require('todo/model/SimpleTodoModel'); registerSuite({ name: 'SimpleTodoModel', // Assume we have a promises interface defined 'default data'() { var emptyModel = new SimpleTodoModel(), id:string = emptyModel.get('id'), length:number = emptyModel.get('todos').length, incomplete:number = emptyModel.get('incomplete'), complete:number = emptyModel.get('complete'); assert.strictEqual(id, 'todos-dojo', 'Id should default to "todos-dojo"'); assert.strictEqual(length, 0, 'Todos array should default to an empty array.'); assert.strictEqual(incomplete, 0, 'Incomplete count should default to 0.'); assert.strictEqual(complete, 0, 'Incomplete count should default to 0.'); } });