【发布时间】:2017-02-16 16:06:51
【问题描述】:
我正在尝试使用 Jasmine 来测试以下功能:
var Pdba = Class.create();
Pdba.prototype = {
getChangeGroup: function(userId) {
var query = 'active=true^u_change_group=true^u_organization=false^';
var exGroup = new CompanyGroup();
var groups = exGroup.getGroupsByQuery(userId, query); //want to spy/mock this call
if (groups.next()) {
return groups.sys_id.toString();
}
return '';
}
type: 'Pdba'
};
我想监视 getGroupsByQuery() 调用,这样它就不会进行实际调用。下面是我一直在尝试的各种事情的集合,主要是为了看看我是否可以“窥探”并查看它是否已被调用,然后进行覆盖,以便我可以用自己的数据替换调用。
describe('my suite of getChangeGroup tests', function() {
var expPdba;
var validUserId = 'user1';
var expGrp;
var ggbqMoc
beforeEach(function() {
expPdba = new global.Pdba();
coGrp = new CompanyGroup();
spyOn(coGrp, 'getGroupsByQuery');
ggbqMoc = jasmine.createSpy('getGroupsByQuery');
});
it('should return \'\' for empty userId', function() {
coPdba.getChangeGroup('');
expect(coGrp.getGroupsByQuery).toHaveBeenCalled();
expect(ggbqMoc).toHaveBeenCalled();
});
});
这可能吗,还是我需要更改被测函数以将“CompanyGroup”作为参数?
谢谢
【问题讨论】:
标签: jasmine