backbone怎么做单元测试?

发布于 2022-09-01 06:26:11 字数 55 浏览 16 评论 0

项目主要用require&backbone,想要好好重构一下,想一边重构一边写测试。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

‖放下 2022-09-08 06:26:11

做过两个Backbone RequireJS jQuery Mustache结合的项目。

一个用的是Selenium,可以自动Google。
一个是自己在Github上的项目: https://github.com/phodal/freerice

说说第二个,测试有两种

单元测试

用的是: Sinon + Jasmine + Jasmine-jQuery。

测试Model的逻辑,需要用到FakeServer,如: https://github.com/phodal/freerice/blob/master/web/test/spec/RiceModel...

beforeEach(function() {
    this.server = sinon.fakeServer.create();
    this.rices = new Rices();
    this.server.respondWith(
        "GET",
        "http://0.0.0.0:8080/all/rice",
        [
            200,
            {"Content-Type": "application/json"},
            JSON.stringify(data)
        ]
    );
});

测试View的话,基本就靠行为,如freerice/web/test/spec/LoginViewSpec.js

beforeEach(function() {
    view = new LoginView();
    view.$el.find('#username').val('admin').trigger('change');
    view.$el.find('#password').val('admin').trigger('change');
});

功能测试

因为用的是Node,所以用的是zombie

一个简单的测试用例如下freerice/test/system/function_test.js:

    it('should be on login page', function(done) {
        browser.visit('#/account/login')
            .then(function() {
                assert.equal(browser.location.href, website + '#/account/login', 'It is not the Login page');
                assert.ok(browser.success, 'It did not load successfully.');
            })
            .then(done, done);
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文