当我在单元测试规范文件中调用 outOfMvp() 函数时,除了 onTap 函数之外,函数内的所有内容都得到了覆盖。我想知道如何在我的单元测试中覆盖按钮的 onTap 函数,该函数位于 $ionicPopup.show() 方法中传递的 JSON 对象中?
这是js文件中的函数:
function outOfMvp(data) {
environmentConfig.isScanDataReadValid = false;
popup = $ionicPopup.show({
title: kioskConstants.POPUP_WORDING.OUT_OF_MVP_RETURN.title,
template: data.returnRejectReasons[0].description
+ '.<br><br>' + kioskConstants.POPUP_WORDING.OUT_OF_MVP_RETURN.template
+ ' <span style=\'color:#007dc6\'>' + data.orderNo + '</span>',
cssClass: 'popup-container-small',
buttons: [
{
text: "OK",
type: "bottom-button green narrow",
onTap: function () {
if ($state.current.name != "order-history") {
environmentConfig.isScanDataReadValid = true;
$rootScope.$broadcast("CancelConnectQR", data.orderNo);
OrderInfo.init();
$state.go(kioskConstants.ROUTE_STATE_LANDING_PAGE);
}
}
}
]
});
}
规范文件中 outOfMvp 函数的单元测试:
describe('If call customPopupWidget.outOfMvp(data) function',function () {
it('it should call $ionicPopup.show().', function () {
customPopupWidget.outOfMvp(data);
expect(ionicPopup.show).toHaveBeenCalled();
});