如何测试一个类的一个函数以及如何在测试函数时避免使用某些代码?

时间:2013-04-25 05:44:26

标签: node.js testing mocha

示例代码:

function TestClass() {
  var this.name = 'test';
  var this.host = '...';
  var this.port = '...';
  //...
  this.connection = this.createConnection(....);
}

TestClass.prototype.testFunc = function(data) {
  if(data == this.name) {
     return true;
  } else {
     return false;
  }
}

Testclass.prototype.createConnection = function (...) {
   //some code
  //a real HTTP connection will be created
  //some code
}

现在我想测试testFunc,它有一个类变量this.name,所以我必须创建一个TestClass实例。但是如果我创建TestClass实例,将创建一个真正的HTTP连接。测试时如何避免这种真正的HTTP连接?

在这种情况下,我该如何编写测试代码?

2 个答案:

答案 0 :(得分:0)

在实例化createConnection之前,尝试在测试中重新定义TestClass

TestClass.prototype.createConnection = function() {
    console.log("Called redefined createConnection");
}

答案 1 :(得分:0)

您应该模拟依赖项,使您不想测试的请求不是您的类。看看这个nock,一个HTTP模拟和期望库