DOM을 조작하는 라이브러리에 대한 몇 가지 테스트를 작성하려면 zombiejs + mocha를 사용하고 document.createElement()와 같은 JavaScript 기본 함수를 사용합니다. 내 문제는 테스트 '문서가 정의되지 않았습니다'라는 예외가 발생합니다.Mocha + ZombieJs, 문서가 정의되지 않았습니다.
zombiejs 또는 jsDOM에 문제가 있습니까? 어떻게 해결할 수 있습니까? 여기
내 코드의 예입니다HTML : tests.js에서
<!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>
:
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();
});
});
});
여러분의 도움에 감사드립니다
답변 해 주셔서 감사합니다. 실제로 테스트 스크립트에서 'require'를 통해 라이브러리를로드합니다. 방금 HTML에서 직접 테스트하는 라이브러리를로드하도록 코드를 수정했으나로드되지 않습니다! – Khalifa
@Khalifa 브라우저에서 제대로 작동하는지 확인한 다음 좀비 API, 특히 [resources] (https://github.com/assaf/zombie/blob/master/src/zombie/resources)에 디버깅 문을 추가해보십시오. . 커피) 개체. – gcochard
브라우저에서 문제없이 작동하고 이미 내 라이브러리에서 메시지를 디버깅했습니다. 내 라이브러리가로드되지 않은 것으로 보입니다! – Khalifa