![](/img/trans.png)
[英]Why is $provide only available in the 'angular.mock.module' function, and $q only available in the 'angular.mock.inject' function?
[英]How does the angular.mock.module function know what module to address when mocking dependencies?
我試圖弄清楚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);
});
這最后一個代碼片段會為mymodule
或anothermodule
提供foo=43
嗎?
module(function($provide) {
$provide.value("foo", 43);
}
這將注冊一個提供foo
值的新模塊。 不會將值添加到任何現有模塊中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.