我的控制器中有以下范围功能
$scope.getStaff = function (request, response) {
var a = [];
if ($scope.staff !== null) {
// all terms must be contained
a = $scope.staff;
var terms = request.term.toLowerCase().split(' ');
for (var i = 0; i < terms.length; i++) {
var t = terms[i];
if (t) {
a = $.grep(a, function (item, index) {
var v = item.label.toLowerCase();
return v.indexOf(t) !== -1;
});
}
}
}
response(a.length > 0 ? a : null);
};
我正试图像这样使用茉莉花来测试它:
describe('getStaff', function() {
it('...', function() {
$scope.staff = [
{ label: "test1" },
{ label: "test2" }
];
var req = { term: "a b c" };
expect(req.term.toLowerCase()).toBe('a b c');
var res = function(a) {
return a;
}
var result = $scope.getStaff(req, res).response;
expect(result).toBe(null);
});
});
我最终试图看看getStaff函数中的“a”是什么。我怎样才能在茉莉花测试中获得这个价值?
答案 0 :(得分:1)
我的回答真是一个意见。除非你愿意在控制器的范围内公开你的'a',否则我的回答是“你不关心”你的茉莉花测试应该只测试返回response(a.length > 0 ? a : null);
的答案。
我的直觉告诉我你可能想考虑为这段代码创建一个辅助函数
$.grep(a, function (item, index) {
var v = item.label.toLowerCase();
return v.indexOf(t) !== -1;
});
与您的getStaff函数分开的单元测试。