使用Jasmine查看一些JS单元测试,在一个describe-suite中我找到了以下代码:
@"\\Network\\ExampleFolder"
在内部描述中,变量describe("suiteName", function() {
var $controller;
beforeEach(inject(function(_$controller_) {
$controller = _$controller_;
}));
describe(....);
describe(....);
});
在某些规范$controller
中被用于“绑定”控制器字段到引用:
it
我假设$controller('controllerUniqueName', {
controllerField1: reference1,
controllerField2: reference2,
...
}
正在进行一些依赖注入,将inject(..)
注入全局变量_$controller_
,而$controller
只是在每个规范{{1}之前执行此操作在随后的每个描述套件中。
有人可以解释依赖注入是如何解决的吗?
特别是beforeEach
等于作业it
?
编辑1:如果我删除了注入块,则单元测试失败并显示消息_$controller_
。
**编辑2:**如果我将$controller = _$controller_;
更改为TypeError: $controller is not a function
单元测试失败并显示消息_controller_
答案 0 :(得分:1)
_$controller_
等于$controller
service instance。
Underscored服务别名是supported,以使这种模式成为可能:
var $controller;
...
$controller = _$controller_;
如果加载的模块中不存在something
服务,则会引发[$injector:unpr] Unknown provider: $somethingProvider <- $something
错误。