gpt4 book ai didi

angularjs - 使用 Jasmine 进行 Angular 测试无法比较 html 节点

转载 作者:行者123 更新时间:2023-12-02 22:22:58 24 4
gpt4 key购买 nike

我正在使用 Jasmine 在 Angular 中构建指令测试。我有一个小示例测试,如下所示:

it("should compare html node", inject( function ($compile, $rootScope) {
var elm = angular.element('<input>');
elm = $compile(elm)($scope);
$scope.$digest();
console.log('btn', elm); // output: '<input class="ng-scope">'
expect(elm).toBe('<input class="ng-scope">');

expect(elm[0]).toBe('<input class="ng-scope">'); // these also fail
expect(elm.html()).toBe('<input class="ng-scope">'); // ""
}));

所以我得到了控制台的预期输出,但 Jasmine 提示错误 Expected { length: 1, 0: HTMLNode } to be '<input class="ng-scope">'

我也尝试过使用elm[0]这给出了相同的错误和 elm.html()但这只是返回一个空字符串。如何正确比较 HTML 节点和字符串?

注意,我知道这是一个不切实际的测试,但我只是想演示我当前的问题。

最佳答案

所以 elm 是一个 angular.element ,它是一个 jqLit​​e 对象。正如您所指出的,您可以使用 elm[0] 来获取实际的 dom 元素。然后你可以通过访问字段.outerHTML来访问节点的html。所以我们最终的解决方案是使用

elm[0].outerHTML

关于angularjs - 使用 Jasmine 进行 Angular 测试无法比较 html 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28375934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com