【发布时间】:2014-07-13 00:32:19
【问题描述】:
我正在尝试基于单个 HTML 页面使用 Jasmine 和 Karma 进行单元测试的纯前端项目的 TDD。
Jasmine 的文档没有说明 DOM 操作,这是我正在尝试测试的最重要的事情之一。
问题很简单,如何检查一个 HTML 页面的 DOM 变化和内容变化? 例如,假设我有如下代码:
HTML 文件
<a href="#/say_hello">Say Hello</a>
JS 文件:
// Router
App.Router = Backbone.Router.extend({
routes: {
'': 'home',
'say_hello': 'sayHello'
}
});
var router = new App.Router();
router.on('route:sayHello', function(){
$("body").append("Hello World");
});
Backbone.history.start();
如何测试这种行为: 如果有人点击“Say Hello”链接,则 html 正文中的文本将包含“Hello World”
更重要的是,我如何检查 CSS 更改或模拟 HTML 事件(鼠标悬停、焦点、更改、加载等...)? Jasmine 和 Karma 有可能吗?
谢谢
【问题讨论】:
标签: javascript backbone.js tdd jasmine karma-runner