作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Material 设计构建一个有 Angular 的应用程序。我正在使用 $mdSidenav 服务来玩 sidenav,它应该能够随着用户的需求打开和关闭。
我围绕它创建了一个包装服务,如下所示:
(function () {
'use strict';
angular
.module('app.layout')
.factory('navigationService', navigationService);
navigationService.$inject = ['$mdSidenav'];
function navigationService($mdSidenav) {
var factory = {};
factory.toggle = toggle;
return factory;
//////////
function toggle() {
$mdSidenav('left').toggle();
}
}
}());
beforeEach(module(function ($provide) {
mdSidenav = {};
mdSidenav.toggle = jasmine.createSpy();
$provide.value('$mdSidenav', mdSidenav);
}));
beforeEach(inject(function(_navigationService_) {
navigationService = _navigationService_;
}));
it('Should call $mdSidenav toggle when required', function() {
// act
navigationService.toggle();
// assert
expect(mdSidenav.toggle).toHaveBeenCalled();
});
最佳答案
我对 Material 设计库不熟悉,但它看起来像$mdSidenav
返回一个函数。
你为什么不更换:$provide.value('$mdSidenav', mdSidenav);
和
$provide.factory('$mdSidenav', function() {
return function(direction){//if you use direction ('left' in your example) you could use it here
return mdSidenav;
};
})
关于angularjs - 如何对 $mdSidenav 服务进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31936131/
我是一名优秀的程序员,十分优秀!