javascript - Jasmine 的spyOn toHaveBeenCalled方法的问题

原文 标签 javascript tdd jasmine

谁能告诉我以下测试失败的原因。

var Person = function() {};

Person.prototype.helloSomeone = function(toGreet) {
  return this.sayHello() + " " + toGreet;
};

Person.prototype.sayHello = function() {
  return "Hello";
};

describe("Person", function() {
 it("calls the sayHello() function", function() {
   var fakePerson = new Person();
   spyOn(fakePerson, "sayHello");
   fakePerson.helloSomeone("world");
   expect(fakePerson.sayHello).toHaveBeenCalled();
  });
});


我从here那里拿走了,他说这行得通。我可以看到spyOn方法在人员对象上创建了一个同名的包装函数,即在对象而不是原型上调用了fakePerson.sayHello。

非常感谢

最佳答案

测试失败,因为我也使用了jasmine-sinon.js。

关于javascript - Jasmine 的spyOn toHaveBeenCalled方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9396538/

相关文章:

javascript - Json数组的详细信息在带有ionic的angularjs中分三页显示

php - 格式化网页上的打印请求?

javascript - 如何在Laravel中使用ReactJS

c# - 如何首先开发StopWatch类测试?

javascript - Jasmine 检查变量是否在方法中定义

javascript - 单元测试没有失败

javascript - jQuery:带有可读标签的密码字段?

node.js - 在Mocha上测试管理员用户

javascript - Angularjs 测试返回静态数据的简单工厂

javascript - 如何测试这种依赖性?