我最近开始使用 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”,具有模板-URL 'myDirective.html',其中包括ng-repeat
并在objectsToIterate
. 我为“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”的范围。如何?:)
谢谢你。