监视nodejs单元测试中的依赖关系

时间:2017-09-29 20:43:19

标签: javascript node.js unit-testing sinon

我正在使用mocha和sinon进行nodejs单元测试。我有以下

users.js

const Database = require('./lib/Database');

exports.setupNewUser = (name) => {
  var user = {
    name: name
  };

  try {
    Database.save(user);
  }
  catch(err) {
    console.error('something failed');
  }
}

Database.js

exports.save = (user) => {
  console.log(`saving: ${user}`);
};

userTest.js

const sinon = require('sinon');
require('chai').should();

const users = require('../src/users');

describe('users', () => {
  it('should log an error when the Database save fails', () => {
    var databaseSpy = sinon.spy(Database, 'save').throws(); // this is supposed to work??
    users.setupNewUser('Charles');
    databaseSpy.should.be.called;
  });
});

根据我读过的sinon tutorials,我应该能够创建databaseSpy,但我不断收到此错误:ReferenceError:数据库未定义

我错过了什么?

1 个答案:

答案 0 :(得分:0)

这似乎可能是一个路径问题。您的要求可能无法获得正确的路径。

  

<强> users.js

     

const Database = require('./lib/Database');

/ lib / Database与users.js文件的关系在哪里?我认为这可能是一个开始寻找的好地方。