Mocha + ZombieJs,文档没有定义

时间:2013-04-20 11:49:04

标签: zombie.js

我使用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();
    } );
  } );
} );

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

document对象包含在僵尸浏览器中。如果您的代码找不到document,则很可能您没有在僵尸沙箱上下文中运行它。

您是通过zombie.visit('/page/with/library')加载图书馆还是直接要求它并尝试在测试中使用它?

最好测试完整的网页而不是库。您应该创建一个测试页面,其上有几个按钮/链接,用于测试库的不同功能,以及pressButtonvisit带僵尸的那些。