1

我想測試我的角度指令是圍繞slickgrid的包裝。單元測試角度指令包裝slickgrid

'use strict'; 
describe('Unit: Grid Directive', function() { 
    var $scope; 
    var element; 

    beforeEach(module('grid')); 
    beforeEach(inject(function($compile, $rootScope) { 
    $scope = $rootScope;  
    element = angular.element('<grid class="slickgrid-table" id="miscGrid" query="query"/>'); 
    $scope.query = { symbol: 'AAAA' }; 
    $compile(element)($scope); 
    $scope.$digest(); 
    })); 

的問題是,slickgrid用了jQuery找到它應該插入的網格的ID。

Error: SlickGrid requires a valid container, #miscGrid does not exist in the DOM. 

我的問題是,我怎麼能得到這個工作?我如何「欺騙」slickgrid來意識到我試圖編譯的元素是一個有效的容器?

回答

1

而不是欺騙我發現的任何東西,只是在大多數情況下將元素附加到DOM更容易。 據項目githithub一個例子,控制必須在DOM反正(http://mleibman.github.io/SlickGrid/examples/example-explicit-initialization.html

我傾向於把以下行的任何指令規範

var sandbox; 
beforeEach(function() { sandbox = angular.element('<div>'); angular.element(document.body).append(sandbox); }); 
afterEach(function() { sandbox.remove(); sandbox = null; }); 

然後被正確初始化只是追加在編譯之前將您的指令指向沙箱。