我正在使用 Jasmine 和 Karma 作为我的测试运行器为 AngularJS 中的指令编写一些单元测试。当我这样做时,我想知道我是否正在遵循设置它的最佳方法,并希望有人能帮助我。
如果我的指令通过 templateUrl 使用模板,最好是导入实际模板,这已被证明有点棘手,还是使用 $templateCache 插入模板的模拟并做出我的断言?对于单元测试,在我看来,创建模拟是最好的选择,因为它避免了引入额外的资源,而这些资源会使单元测试变得混乱。
此外,我在单个 DOM 元素中搜索时遇到问题,并且一直在使用 element.text() 来搜索绑定到 DOM 的内容。我见过的很多示例都使用这种方法来搜索内容,但我想知道是否有一种方法可以使用诸如 getElementById() 之类的方法来隔离 DOM 的各个部分并根据小部分进行断言一次。
假设我有以下元素作为我的模板:
<div>
<div id = "one">data1</div>
<div id = "two">data2</div>
</div>
我把它编译成一个angular.element。如果我做类似element.getElementById("one").innerHTML它什么也不做。element.text("data1") 会找到值,但它不是很具体。
谢谢