angularjs – 如何在单元测试时在角度1.5中向$componentControll
发布时间:2020-12-17 07:15:11 所属栏目:安全 来源:网络整理
导读:我想在组件中向Controller添加依赖项: 这是我的组件: angular .module('app') .component('myComponent',{ template: 'divsome content/div',controller: ["$routeParams",function ($routeParams) { var ctrl = this; ctrl.myId = $routeParams.id; });
|
我想在组件中向Controller添加依赖项:
这是我的组件: angular
.module('app')
.component('myComponent',{
template: '<div>some content</div>',controller: ["$routeParams",function ($routeParams) {
var ctrl = this;
ctrl.myId = $routeParams.id;
});
现在我只想测试如下: describe("spec for myComponent",function () {
var $componentController;
var $routeParams;
beforeEach(module('app'));
beforeEach(inject(function (_$componentController_,_$routeParams_) {
$componentController = _$componentController_;
$routeParams = _$routeParams_;
$routeParams = {
myId: 42
}
}));
it('should init',function () {
var ctrl = $componentController('myComponent',$routeParams,null);
expect(ctrl.myId).toBe(42);
});
});
但遗憾的是ctrl.myId未定义,因为没有正确注入$routeParams.为什么? 解决方法
我和你的情况非常相似,谷歌搜索了一会儿,但几乎找不到任何东西,但最后我自己解决了问题:这是你案件的解决方案:
describe("spec for myComponent",function () {
var $componentController;
var mockRouteParams = {id : 1};
beforeEach(module('app'));
beforeEach(inject(function (_$componentController_) {
$componentController = _$componentController_;
}));
it('should init',{$routeParams:mockRouteParams},null);
expect(ctrl.myId).toBe(1);
});
});
同时检查Mocking $routeParams in a test in order to change its attributes dynamically有关$routeParams的模拟. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- scala – 只有转换函数至少有两个参数时,才能将函数隐式转换
- Cygwin中的bash shell
- scala – 如何使用指定的模式创建一个空的DataFrame?
- Bootstrap分页插件之Bootstrap Paginator实例详解
- Liferay Portal额外研究(二):对Liferay进行瘦身
- 如何使用scala规范化或标准化spark中具有多列/变量的数据?
- angularjs – Angular – UI.Router不加载组件
- 链接scala尝试包含选项的实例
- Angular 2 – 不同静态页面上任何布局中的多个组件
- scala – 如何创建单独的sbt配置或任务以使用WartRemover进
