我有一个依赖于模型属性的控制器。 我编写了一个测试该控制器并测试模型的测试,每当模型属性名称发生变化时,如何使控制器测试失败?
以下是一个例子:
型号:
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中执行此操作的好建议?
谢谢, 晒
答案 0 :(得分:1)
由于模型已暴露,您可以检查属性是否存在。
expect(controller.name).toBeDefined();
另一方面,如果模型的属性被重命名并且控制器也不会被改变,那么这个测试无论如何都会失败。