我试图写JavaScript代码,包括不工作DOM元素茉莉测试。它只适用于JavaScript代码(只是简单的函数,但不适用于DOM元素)。我一直在研究这么久,无法真正找到答案。我也尝试使用jsdom,因为它应该在测试DOM元素时使用,但是我不断收到一些错误。 是否有任何'简单'的方式来测试DOM元素只使用茉莉花?如何使用jasmine测试带有DOM元素的JavaScript?
的JavaScript:
var result;
var adding = function(one, two) {
var one1 = document.forms["myForm"]["one"].value;
var two1 = document.forms["myForm"]["two"].value;
result = parseInt(one1) + parseInt(two);
var number = document.getElementById("number");
number.innerHTML = result;
return result;
}
HTML:
<html>
<head> </head>
<body>
<form name="myForm">
<h4>numner 1</h4> <input type="text" name="one" id="one"></input>
<h4>number 2</h4> <input type="text" name="two" id="two"></input> <input type="submit" onclick="adding(one.value, two.value); return false;"> </form>
<p id="number"> </p>
</body>
</html>
我的测试规格:
describe("additions", function() {
it("result should add two numbers", function() {
var final = adding(5, 1);
expect(final).toEqual(6);
});
})
对于测试我得到总是:
无法读取未定义的属性'one'。
我知道
var one1 = document.forms["myForm"]["one"].value;
var two1 = document.forms["myForm"]["two"].value;
在这个例子中看起来很奇怪,但我实际的代码要大得多(我没有要发布整个代码,因为它是没有必要的,我的问题),它是必要的,所以我不得不将它包含在这里(可能会影响测试)。
只是嘲笑在您的测试形式; 'document.forms.myForm = {之一:{值:5},二:{值:1}};' –
我不明白如何使用/在哪里把它在我的测试。你能指定一下吗?谢谢。 – javascript2016