0

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

这是一个例子:

模型:

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

谢谢, 夏

4

1 回答 1

1

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

expect(controller.name).toBeDefined();

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

于 2012-07-16T11:25:02.830 回答