我使用zombiejs + mocha为操作DOM的库编写一些测试,它使用JavaScript本机函数,如document.createElement(),我的问题是,当我运行测试时,我得到一个异常说该文档未定义'。
zombiejs或jsDOM有问题吗?我该如何解决?
这是我的代码示例:
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="mocha.js"></script>
<script src="expect.js"></script>
<title>XS UI Tests</title>
<script type="text/javascript" charset="utf-8" src="../lib/mylibrary.js"></script>
<script>
mocha.setup('bdd');
</script>
</head>
<body>
<div id="table"></div>
<div id="controls"></div>
<div id="form"></div>
<div id="mocha"></div>
<script src="tests.js"></script>
</body>
</html>
test.js中的:
var expect = require( 'expect.js' )
, Zombie = require( 'zombie' )
, browser = new Zombie( { debug: true } )
;
describe( 'XS UI Tests:', function() {
before( function( done ) {
browser.visit( 'http://localhost:8080/test/ui.html', done );
} );
it( 'expect ui.html to be loaded', function() {
expect( browser.success ).to.be( true );
} );
describe( 'Table Tests:', function() {
it( 'expect div#table ( table container ) to exist', function() {
expect( browser.query( "#table" ) ).to.be.ok();
} );
} );
} );
感谢您的帮助
答案 0 :(得分:1)
document
对象包含在僵尸浏览器中。如果您的代码找不到document
,则很可能您没有在僵尸沙箱上下文中运行它。
您是通过zombie.visit('/page/with/library')
加载图书馆还是直接要求它并尝试在测试中使用它?
最好测试完整的网页而不是库。您应该创建一个测试页面,其上有几个按钮/链接,用于测试库的不同功能,以及pressButton
或visit
带僵尸的那些。