cyb*_*bat 6 unit-testing angularjs
因此,到目前为止,我已经阅读了许多帖子,但没有建议。
我想模拟一个模块-说出angular-foo。原始文件将与其他所有文件一起加载。
angular.module('app', ['angular-foo'...
Run Code Online (Sandbox Code Playgroud)
我想在我的业力/摩卡测试中模拟这个模块。我已经尝试过像这样称呼它的建议,但这是不行的。
beforeEach(module('app'));
beforeEach(module('angular-foo'))
Run Code Online (Sandbox Code Playgroud)
如何完全阻止原始的angular-foo运行(但必须将其作为其余代码的一部分加载)?
嘲笑factory
,service
和value
服务angular.mock.module
对象意见,可以使用
beforeEach(module('app', 'angular-foo', {
fooFactoryService: ...,
fooValueService: ...
}));
Run Code Online (Sandbox Code Playgroud)
为了模拟可在配置阶段(constant
和provider
)注入的服务,应使用config函数
beforeEach(module('app', 'angular-foo', ($provide) => {
$provide.constant('fooConstantService', ...),
$provide.provider('fooProviderService', ...),
}));
Run Code Online (Sandbox Code Playgroud)
该行中的最后一个模块将覆盖其他模块的服务。可以部分模拟服务(使用$provide.decorator
)或全部模拟服务。
如果angular-foo
根本不加载模块,但其他模块使用了它,则可以在规范中使用其模拟版本完全重新定义该模块,
angular.module('angular-foo', [])...
beforeEach(module('app', 'angular-foo'));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5049 次 |
最近记录: |