簡體   English   中英

使用Jasmine測試Lodash sortBy函數參數

[英]Testing Lodash sortBy function argument using Jasmine

我的項目中有一個控制器,如下所示:

define(function (require) {
  'use strict';

  function AllOrgsController($rootScope, $uibModalInstance) {
    var vm = this;
    var clonedOrgs = _.cloneDeep($rootScope.userData.org);
    vm.modelContainer = _.sortBy(clonedOrgs, function (org) {
      return org.organizationName.toLowerCase();
    });

    vm.openFacilityModal = function () {
      $uibModalInstance.close();
    };

    vm.saveOrgsModal = function () {
      $uibModalInstance.close({ $value: vm.currentFacility });
    };

    vm.cancelOrgsModal = function () {
      $uibModalInstance.dismiss();
    };
  }

  AllOrgsController.$inject = ['$rootScope', '$uibModalInstance'];

  return AllOrgsController;
});

但是伊斯坦布爾並未涵蓋在Lodash的_.sortBy方法中使用的匿名函數。 由於我是單元測試的新手,所以我不知道為什么-有人知道嗎?

我的代碼中出現“功能未覆蓋”錯誤消息

_.sortBy應該為您提供的clonedOrgs參數的每個元素調用傳遞的函數。 由於Istanbul檢測到傳遞的函數從未運行過,因此這必須意味着您的測試中clonedOrgs始終為空(或不是有效數組)。 因此,您可以通過編寫一個其中$rootScope.userData.org數組包含元素的測試來確保該方法被覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM