Javascript单元测试依赖关系-当依赖对象发生变化时,如何使测试失败

Javascript Unit testing dependencies - How to make a test fail when a depended object changes

本文关键字:依赖 测试 失败 变化 何使 关系 单元测试 Javascript 对象      更新时间:2023-10-02

我有一个依赖于模型属性的控制器。我写了一个测试这个控制器的测试,并对模型进行了存根,我如何在模型属性名称更改时使我的控制器测试失败?

这里有一个例子:

型号:

function Model(obj){
  this.id = obj.id; 
  this.name = obj.name;
}

控制器:

function Controller( model ){
  this.model = model
};
Controller.prototype.showName = function() { 
  return this.model.name; 
}

控制器测试:

describe("A controller", function(){
  var controller = new Controller( new Model({id:1, name: "john"}) );
  it ("should show the person name", function(){
    expect(controller.showName).toEqual("john");
  });
});

我希望这个测试在"name"属性更改为其他内容时失败,比如"name2"。

有人对如何在javascript中做到这一点有很好的建议吗?

谢谢,Shai

由于模型是公开的,您可以检查属性的存在。

expect(controller.name).toBeDefined();

另一方面,如果模型的属性被重命名,并且控制器也不会被更改,那么这个测试无论如何都会失败。