오늘 처음으로 Zombie.js을 시도해 보았습니다. javascript (특히 Backbone.js 앱)를 통해 DOM 요소를 채우는 페이지를 방문하는 데 문제가 있습니다. 빠른 예를 들어, Backbone.js Todo app을 방문하고 몇 가지 항목을 수동으로 추가했습니다. 그런 다음 좀비를 사용하여 #todo-list
엘리먼트 내의 html을 가져 오려고했습니다. 다시 비어있게되었습니다. browser.runScripts = true
을 설정 했으므로 좀비가 쿼리 할 준비가되지 않아야합니까?Zombie.js로 Backbone.js 앱의 DOM 쿼리하기
소스를 보면 내부 HTML이 실제로 비어 있습니다. Zombie.js를 통해서도 가능합니까? 아니면 here처럼 재스민과 같은 것을 사용해야합니까?
나는 내가 얻은 응답과 함께 아래의 예제 코드를 포함시켰다.
var zombie = require('zombie'),
vows = require('vows'),
assert = require('assert');
var baseUrl = 'http://documentcloud.github.com/backbone/examples/todos/index.html';
vows.describe('Zombie Tests on a Backbone App').addBatch({
'Navigate to Todo List' : {
topic: function() {
browser = new zombie.Browser({ debug: true });
browser.runScripts = true;
browser.on('error',function (err){console.log(err.stack)});
browser.visit(baseUrl, this.callback);
},
'Can see todo list' : function (err,browser,status) {
console.log('todo-list inner:' + browser.querySelector("#todo-list").innerHTML);
// actual tests would go here
}
},
}).export(module);
그리고 vows
를 실행 한 출력 :
> vows test/todo-test.js --spec
♢ Zombie Tests on a Backbone App
Zombie: GET http://documentcloud.github.com/backbone/examples/todos/index.html
Zombie: GET http://documentcloud.github.com/backbone/examples/todos/index.html => 200
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/json2.js
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/jquery-1.5.js
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/underscore-1.1.6.js
Zombie: GET http://documentcloud.github.com/backbone/backbone.js
Zombie: GET http://documentcloud.github.com/backbone/examples/backbone-localstorage.js
Zombie: GET http://documentcloud.github.com/backbone/examples/todos/todos.js
Zombie: GET http://documentcloud.github.com/backbone/examples/backbone-localstorage.js => 200
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/json2.js => 200
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/underscore-1.1.6.js => 200
Zombie: GET http://documentcloud.github.com/backbone/backbone.js => 200
Zombie: GET http://documentcloud.github.com/backbone/examples/todos/todos.js => 200
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/jquery-1.5.js => 200
Zombie: Firing timeout 1, delay: 1
todolist inner:
Navigate to Todo List
✓ Can see todo list
✓ OK » 1 honored (3.824s)