【发布时间】:2018-02-07 13:01:08
【问题描述】:
在我的控制器中,我们定义了以下两种方法 -
function goToHome() {
$state.go('app.home', {newReleaseIds: vm.newReleaseIds});
}
function createAnotherFuelRelease() {
// GA -- start creating another fuel release
$analytics.eventTrack('Start creating another fuel release', {category: 'Iron', label: moment().format('MMMM Do YYYY, h:mm:ss a')});
$state.go('app.create-iron', {selectedLocation: vm.selectedLocation, fuelReleaseNumber: vm.fuelReleaseNumber + 1, newReleaseIds: vm.newReleaseIds, pricing: $state.params.pricing});
}
从控制器调用这两个方法-
vm.createAnotherFuelRelease = createAnotherFuelRelease;
vm.goToHome = goToHome;
现在我想从 spec.js 文件中测试这些方法 -
it('应该检查 goToHome()', function() {
// spyOn($state, 'go');
// $scope.inviteMembers(1);
// expect($state.go).toHaveBeenCalledWith('invite', {deptId: 1});
var spy = sinon.spy();
scope.vm.goToHome = {goToHome : spy};
scope.$digest();
expect($state.go).toHaveBeenCalledWith('app.home', {newReleaseIds: 1});
// expect(spy.calledOnce).toEqual(false);
// $compiledElement.find('.nv-button.test-gotToHome').trigger('click');
// expect(spy.calledOnce).toEqual(true);
// spy.reset();
});
但它不起作用。如果有人知道这些东西,请告诉我。
【问题讨论】:
-
当你调用你的方法时,它有效吗?
-
方法在真实场景中完美运行,但我想在该方法上添加测试用例。这是我做不到的。
标签: angularjs unit-testing jasmine karma-jasmine jasmine-jquery