gpt4 book ai didi

jquery - Jasmine 单元测试元素不是 :hidden

转载 作者:行者123 更新时间:2023-12-01 02:56:02 26 4
gpt4 key购买 nike

我有一个 AngularJS 指令,我正在为其编写测试。我在这个问题中重现了这个问题:http://plnkr.co/edit/gHoGwI6TZhsgKVwIb1uI?p=preview

谁能告诉我为什么第二次测试失败以及如何修复它?

代码:

var app = angular.module("myApp", []);
app.directive("myDirective", function() {
return {
template: "<div>Hello this is my directive!</div>"
}
});

describe("Testing hidden", function() {
var $compile, $scope, $document;

beforeEach(inject(function(_$compile_, $rootScope, _$document_){
$compile = _$compile_;
$scope = $rootScope.$new();
$document = _$document_;
}));

function getElement() {
var element = angular.element("<div my-directive></div>");
$compile(element)($scope);
return element;
}

it("passes", function() {
var element = getElement();
expect(element.is(":hidden")).toBe(true); // Passes
});

it("fails", function() {
var element = getElement();
$document.body.append(element);
element.show();
expect(element.is(":hidden")).toBe(false); // Fails
});

});

最佳答案

您需要将元素添加到 DOM;

我已经用快速解决方案更新了您的代码。当然,您可以在 beforeEach 中将其添加到 DOM,并在 afterEach 中将其从 DOM 中删除。

http://plnkr.co/edit/wRLhak1rDqnqfHMbKoWs?p=preview

关于jquery - Jasmine 单元测试元素不是 :hidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21623974/

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