【发布时间】:2015-03-24 10:30:06
【问题描述】:
我试图弄清楚函数angular.mock.module(通常别名为window.module)是如何工作的。我了解它的主要用途是在您的测试中加载模块;这很简单:
beforeEach(angular.mock.module("mymodule"));
这将在我的茉莉花规格中的每个 it 之前加载 myhmodule。
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);
});
最后一个 sn-p 是否会提供 foo=43 到 mymodule 或 anothermodule?
【问题讨论】:
标签: angularjs unit-testing mocking