在我的控制器加载角度时,我执行一堆初始化。一些初始化是本地的,而其他初始化是通过http调用。
在编写测试用例时,为了检查变量是否初始化为应该是什么 我目前正在初始化控制器的每个测试案例如下:
describe('on-load',function(){
it('should initialize scope.player to xyz if some-dependency is abc',function(){
createController();
expect( .... );
}
it('should initialize scope.player to mno if some-dependency is def',function(){
createController();
expect( .... );
}
it('should initialize scope.canvas.size to 900',function(){
createController();
expect( .... );
}
}
这是考虑为角度控制器编写茉莉花测试的正确方法吗?
答案 0 :(得分:0)
控制器将在每个it
块中创建,我认为它很好。
答案 1 :(得分:0)
没有正确或更正确的方法,这一切都取决于你想要测试的......
例如,如果你有这样的东西:
angular.contoller('controller', function controller() {
this.init = function() {}
this.init();
}
直接在控制器中调用的存根/模拟$http.get()
的示例:http://moduscreate.com/unit-testing-w-angularjs/。注意 - 不是将函数赋值给变量 createControlle ,而是可以在 beforeEach 块之外提取它。
如果没有.init()
部分中的存根方法beforeEach()
并且在每个它部分中实例化控制器,则无法测试.init()
之类的方法。
因为如果你要在 beforeEach 中创建控制器,那么要延迟它的内部方法。