我无法弄清楚为什么Jasmine测试框架在尝试读取div#2中的那些元素的classList属性时未定义我的“childElement”元素 - div#5。Div#1不会抛出任何错误,但其余的。所以我想知道这是否可以帮助某人弄清问题是什么。
以下是其中一个不起作用的测试的代码:
describe('Div #2', function() {
var tag = 'div';
var element = document.getElementsByTagName(tag)[1];
var childElement = element.getElementsByTagName(tag)[1];
var utilityClass = 'align-self-center';
var hasUtilityClass = null;
it('should have the class "' + utilityClass + '".', function() {
hasUtilityClass = childElement.classList.contains(utilityClass);
expect(hasUtilityClass).toBe(true);
});
});
您可以在此处查看我的完整代码:http://codepen.io/jeppeschaumburg/pen/zNyLOK
答案 0 :(得分:1)
var element = document.getElementsByTagName(tag)[1];是:
"contacts" table
+----+------+
| id | name |
+----+------+
| 1 | p1 |
| 2 | p2 |
| 3 | p3 |
| 4 | p4 |
| 5 | p5 |
| 6 | p6 |
+----+------+
"parents_and_children" table
+----+-----------+----------+
| id | parent_id | child_id |
+----+-----------+----------+
| 1 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 3 | 4 |
| 4 | 5 | 2 |
| 5 | 5 | 3 |
| 6 | 5 | 6 |
+----+-----------+----------+
因此其中没有子元素。然后是+-------------------+------------------+
| parent(s) name(s) | children name(s) |
+-------------------+------------------+
| p1, p5 | p2, p3 |
| p3 | p4 |
| p5 | p6 |
+-------------------+------------------+
尝试使用chrome / firefox调试窗口逐步执行代码以查看问题所在。
答案 1 :(得分:0)
您可能需要考虑使用getElementsByClassName
定位以获取所有d-flex example-alignSelf
类命名的容器,然后查找要传递的测试用例。