0

私はzombiejs + mochaを使用して、DOMを操作するライブラリのいくつかのテストを作成しています。これは、document.createElement()などのJavaScriptネイティブ関数を使用しています。私の問題は、テストを実行すると、「document is not」という例外が発生することです定義されています。

それは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>

tests.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();
    } );
  } );
} );

ご協力ありがとうございました

4

1 に答える 1

1

documentオブジェクトはゾンビ ブラウザ内に含まれています。コードで が見つからない場合documentは、ゾンビ サンドボックス コンテキスト内でコードを実行していない可能性があります。

ライブラリを介してロードしていますzombie.visit('/page/with/library')か、それとも直接要求してテスト内で使用しようとしていますか?

ライブラリではなく、完全な Web ページをテストすることをお勧めします。pressButtonライブラリのさまざまな機能やvisitゾンビを含む機能をテストするいくつかのボタン/リンクを含むテスト ページを作成する必要があります。

于 2013-04-30T18:05:32.293 に答える