我想弄清楚函数angular.mock.module
(通常别名为window.module
)是如何工作的。我知道它的主要用途是在你的测试中加载一个模块;这很容易:
beforeEach(angular.mock.module("mymodule"));
这将在我的茉莉花规格中的每个myhmodule
之前加载it
。
module
的另一种用法是模拟某个模块内的服务/工厂/值。假设mymodule
有一个名为foo
的值为42
的值,我可以在我的规范中这样说:
beforeEach(angular.mock.module("mymodule")); // this loads the module
// whereas this mocks the value of foo
beforeEach(module(function($provide) {
$provide.value("foo", 43);
});
我的问题现在如下:module
如何知道使用$provide
服务进行模拟时要解决的模块?事实上,在我的测试中,我可以写:
beforeEach(angular.mock.module("mymodule"));
beforeEach(angular.mock.module("anothermodule"));
beforeEach(module(function($provide) {
$provide.value("foo", 43);
});
这最后一段代码会提供foo=43
到mymodule
或anothermodule
吗?
答案 0 :(得分:1)
module(function($provide) {
$provide.value("foo", 43);
}
这会注册一个提供foo
值的新模块。它不会将值添加到任何现有模块。