相关疑难解决方法(0)

如何使用 jasmine 测试带有 DOM 元素的 JavaScript?

我正在尝试在 jasmine 中为包含 DOM 元素的 JavaScript 代码编写一个测试,但该测试不起作用。当我仅测试 JavaScript 代码(只是简单的函数,但不适用于 DOM 元素)时,它可以工作。我研究了这么久,确实找不到答案。我还尝试使用 jsdom,因为它应该在测试 DOM 元素时使用,但是我不断收到一堆错误。有没有什么“简单”的方法来仅使用 jasmine 测试 DOM 元素?

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;
}
Run Code Online (Sandbox Code Playgroud)

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> …
Run Code Online (Sandbox Code Playgroud)

javascript testing unit-testing jasmine jsdom

5
推荐指数
2
解决办法
9644
查看次数

在Jasmine中,如何测试使用document.write的函数

我有一个功能:

var foo = function() {
    document.write( bar() );
};
Run Code Online (Sandbox Code Playgroud)

我的Jasmine测试是:

describe('has a method, foo, that', function() {
    it('calls bar', function() {
        spyOn(window, 'bar').andReturn('');
        foo();
        expect(bar).toHaveBeenCalled();
    });
});
Run Code Online (Sandbox Code Playgroud)

我的问题是测试传递和foodocument.writes到页面,完全覆盖页面.有没有一种好方法来测试这个功能?

相关问题

javascript unit-testing jasmine

2
推荐指数
1
解决办法
1976
查看次数

标签 统计

jasmine ×2

javascript ×2

unit-testing ×2

jsdom ×1

testing ×1