Javascript单元测试依赖项 - 如何在依赖对象更改时使测试失败

时间:2012-07-16 10:57:29

标签: javascript unit-testing stubbing sinon

我有一个依赖于模型属性的控制器。 我编写了一个测试该控制器并测试模型的测试,每当模型属性名称发生变化时,如何使控制器测试失败?

以下是一个例子:

型号:

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中执行此操作的好建议?

谢谢, 晒

1 个答案:

答案 0 :(得分:1)

由于模型已暴露,您可以检查属性是否存在。

expect(controller.name).toBeDefined();

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