如何为AngularJs与jasmine的会话创建模拟会话
在AngularJs中,我必须使用jasmine测试一个过滤器。我已在控制器的会话中设置studentNameFormat。我有一个这样的过滤器:如何为AngularJs与jasmine的会话创建模拟会话,angularjs,unit-testing,jasmine,automated-tests,Angularjs,Unit Testing,Jasmine,Automated Tests,在AngularJs中,我必须使用jasmine测试一个过滤器。我已在控制器的会话中设置studentNameFormat。我有一个这样的过滤器: angular.module('course.filters').filter('studentName',['Session', function (Session) { return function (student) { var format = Session.getState().studentNameFo
angular.module('course.filters').filter('studentName',['Session',
function (Session) {
return function (student) {
var format = Session.getState().studentNameFormat;
if(format == '0') {
return student.firstName + " " + student.lastName;
}
else{
return student.lastName + student.firstName;
}
};
}]);
为了在Jasmine中测试一个方法,我需要将会话对象传递给该方法。如何创建模拟会话变量
I have test filter like:
describe('studentName', function () {
'use strict';
var $filter;
var student;
var session;
beforeEach(function () {
module('course.filters');
inject(function (_$filter_, _Session_) {
$filter = _$filter_;
session = _Session_;
});
patient = {
"firstName": "John",
"lastName": "Doe"
}
session.setState({
studentNameFormat: 1
});
});
it('return full lastName full FirstName if given 1', function () {
console.log(patient);
var studentFilter = $filter('studentName');
expect(studentFilter (student)).toEqual("Doe John");
});
它给我错误sessionProvider未定义。
错误:[$injector:unpr]未知提供程序:SessionProvider是您注入到Angular组件中的会话服务吗?如果您可以包含一些测试代码或将其上载到JS Fiddle/Plnkr中,它实际上会有所帮助。会话是您注入到Angular组件中的服务吗?如果您可以包含一些测试代码或将其上载到JS Fiddle/Plnkr中,它实际上会有所帮助一把JS小提琴/Plnkr。