Jasmine-jquery,测试为(嵌套)指令生成的GUI

时间:2013-06-11 08:39:09

标签: angularjs jasmine angularjs-directive jasmine-jquery

我最近开始使用jasmine-jquery(1.3.1)和angular(1.0.6),并且需要有关测试GUI的建议。 我有一些控制器的视图,它有角度指令,比如'view.html':

<div id='main-div'>
  <div my-directive objects-to-iterate='someScopeObjects'>
   <span id='default-span'>some default text</span>
  </div>
</div>

,并且在JS中定义了一个指令“myDirective”,其中包含{my -ire-url'myDirective.html',其中包含ng-repeat并在objectsToIterate中生成一些嵌套的div(行)foreach。 我为'view.html'和'myDirective.html'加载了灯具。 现在我想测试一下,在用户交互过程中,'myDirective'重复块中确实存在一些元素(行)。 开始很简单:

var div = $('div#main-div');
div = $compile(div)(scope);
scope.$digest();
expect(div).toBeVisible();

现在我被卡住了。无法访问“myDirective”元素的“生成”来源。如果我使用

div.find('whatever-selector-for-element-my-directive'),

我明白了

<div my-directive objects-to-iterate='someScopeObjects'>
   <span id='default-span'>some default text</span>
</div>

如果我尝试编译+消化这个html与范围,我仍然得到相同的标记。我怎么能得到“生成”的源,看起来像(伪)

<div id='my-directive-content'>
  <div id='object-1'>blah</div>
  <div id='object-2'>blah</div>
</div>

以检查用户是否可以看到N行? 范围内someScopeObjects存在且有效。

我的下一步实际上是对嵌套在'my-directive'中的指令进行同样的测试,所以我不得不访问'my-directive'的范围。怎么样? :)

谢谢。

0 个答案:

没有答案