2017-02-28 58 views
0

我不明白爲什麼Jasmine測試框架在嘗試讀取div#2 - div#5中這些元素的classList屬性時未說明我的「childElement」元素.Div#1 doesn不會拋出任何錯誤,但其他人會這樣做。所以我想知道這是否能幫助人們弄清楚問題所在。JavaScript在Jasmine測試中失敗

下面是一個測試的代碼不工作:

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

請在問題本身而不是第三方網站上提供[mcve]中的所有相關代碼。 –

+0

對不起。我會記得下次! –

回答

1

VAR元素= document.getElementsByTagName(標籤)[1] ;是:

<div class="align-self-start">Flex item 1</div> 

所以沒有子元素。然後它是undefined

嘗試使用chrome/firefox調試窗口單步執行代碼以查看問題出在哪裏。

0

您可能希望使用getElementsByClassName來考慮您的定位,以獲得所有d-flex example-alignSelf類命名的容器,然後查找要通過的測試用例。