Mac OS X 配置指南

Mac OS X 配置指南

  • Docs
  • Blog

notes/mocha-and-testing

Sinon

Sinon 可以让一些测试变得简单起来。

比如说测试 Ajax,数据库的时候,很多时候测试的结果取决于数据库或者 ajax 的返回。我们不希望这样的事情发生。

我们可以用 Test-doubles 来解决这样的问题。

Javascript 里,函数是第一公民,可以作为参数传递。因此,Test-double 就建立在这上面。

Sinon 有三种模式

1、Spy

Spy 这种模式是用来检查函数的执行的。

底层原理:

Spy 的工作原理是将需要 Spy 的函数作为 Callback 传给 Spy 函数,有点类似于中间件,但是不太一样。

这样就利用了 javascript 里的函数是第一公民的特性。

代码类似于这样。


//A simple spy helper
function createSpy(targetFunc) {
  var spy = function() {
    spy.args = arguments;
    spy.returnValue = targetFunc.apply(this, arguments);
    return spy.returnValue;
  };

  return spy;
}

//Let's spy on a simple function:
function sum(a, b) { return a + b; }

var spiedSum = createSpy(sum);

spiedSum(10, 5);

console.log(spiedSum.args); //Output: [10, 5]
console.log(spiedSum.returnValue); //Output: 15

2、Stub

Stub 这种模式可以模拟某些函数的执行,比如 ajax,访问数据库的操作。

3、Increment Stored Data.

JavaScript unit testing guide here

  • https://www.sitepoint.com/unit-test-javascript-mocha-chai/

How to Test NodeJS Apps using Mocha, Chai and SinonJS

  • http://sinonjs.org/how-to/

Unit testing Ajax requests with Mocha

  • https://scotch.io/tutorials/how-to-test-nodejs-apps-using-mocha-chai-and-sinonjs
Last updated on 2019-1-8 by wild-flame
Docs
Mac OS 配置指南 | Mac OS Setup Guide乱七八糟的笔记
Projects
Leetcode solutionsJekyll simple猪瘟疫情可视化
More
BlogGitHub
Copyright © 2019 wild-flame