JavaScript和Mocha的unit testing

我已经编写了一个JavaScript库/模块,用于调用静态Web服务的API调用,并向该库的使用者提供方法。 该库的构build方式使得相同的代码既可以用作前端库,也可以用作npm模块(使用browserify转换后的代码)。

不过,我现在计划编写相同的unit testing,这是我第一次编写整个库。 所以,我曾经看过像摩卡和茉莉花这样的图书馆,看来这是很好的select。 我正在考虑在摩卡书写testing。 但是,我不太清楚如何开始这些testing。

另外,像样本消费者那样testingfunction的testing应该被称为集成testing,还是应该将这些testing与unit testing结合起来?

我会很高兴,如果任何人都可以推荐一些在Github的样本testing或摩卡初学者的某种教程。 我也很乐意考虑其他的unit testing框架。

提前致谢

我正在考虑在摩卡书写testing。 但是,我不太清楚如何开始这些testing。

unit testing通常只包括functiontesting,不包括积分和回归testing,这意味着您应该尽可能地testing每个function。

一个基本的例子是这样的。

function alwaysReturnTrue(){ return True; } assertTrue(alwaysReturnTrue()); 

关于unit testing框架,如摩卡 , 茉莉花 ,他们只是为了启动一个框架来运行你的testing。 他们大多会提供基本的assertfunction,如assertTrueassertFalseassertEqual等。

显然,那些断言的方法不足以testing所有的angular落案例。

  • callback函数
  • 函数称为序列
  • 函数称为参数
  • 触发exception
  • 假XHR或服务器

对于处理这些东西,可以通过一种被称为sinon的stream行解决scheme来完成。


另外,像样本消费者那样testingfunction的testing应该被称为集成testing,还是应该将这些testing与unit testing结合起来?

不, 集成testing通常重复您的软件的整个序列,而不是一个单一的function。 那些东西也可以用sinon来完成。 (假XHR或服务器)

 For example: without UI Login() -> Send exit request to serverlet -> Logout() Login() -> Send exit request with save="true" data to serverlet -> Logout() 

正如我上面提到的,我们还有另外一个尚未讨论过的testing。 它被称为回归testing ,这是最复杂的testing。 有两个着名的UItesting库来做到这一点, selenium和phantomjs 。

 For example: with UI Login() -> Click Button Exit() -> Logout() Login() -> Click Checkbox A() -> Click Button Exit() -> Logout() 

总的来说,一个完整的软件testing过程有三个过程。 但是,在现实世界中,时间是有限的。 如果您的项目规模较小,则可能会跳过回归或集成testing。

 step: unit test -> integration test -> regression test time: (short) (longer) (very long)