使用Zombie获取错误文档错误的Nodejs Mocha测试

时间:2013-04-25 21:01:05

标签: node.js mocha zombie.js

我对节点和摩卡很新,对Zombie来说是全新的。我正在尝试为我的应用程序编写一些功能测试。它是使用node / express构建的。当您尝试登录页面(我的示例中的仪表板)时,它会将您重定向到登录名。登录后,它会将您发送回请求的页面。在仪表板上,有一个单击按钮,可以将您带到商品摘要页面。 (这些页面确实使用requirejs来加载必要的javascript)

我正在尝试使用Mocha测试该场景,我可以测试重定向到登录然后加载原始页面。但是,当我按下按钮获取offerSummary时,我收到以下错误:

Error: Wrong document
      at Object.core.Node.insertBefore (..zombie/node_modules/jsdom/lib/jsdom/level1/core.js:501:13)
      at Object.<anonymous> (../zombie/node_modules/jsdom/lib/jsdom/level2/events.js:314:20)
      at Object.proto.(anonymous function) [as insertBefore] (../node_modules/zombie/node_modules/jsdom/lib/jsdom/utils.js:21:26)
      at Object.core.Node.appendChild (../zombie/node_modules/jsdom/lib/jsdom/level1/core.js:621:17)
      at Function.l.load (/javascripts/requirejs/require.2.1.2.min.js:33:148)
      at Object.j.load (/javascripts/requirejs/require.2.1.2.min.js:28:351)

这是我的摩卡测试

describe.only('dashboard', function() {
    var browser;
    beforeEach(function(done){
        var routeToVisit = "/dashboard";
        browser = new Browser();

        browser.on("error", function(err) {
            done(err);
        });

        browser.visit(startingUrl + routeToVisit, function(){

                browser.location.pathname.should.equal("/login.html");

                browser.fill("#username", "abc");
                browser.fill("#password", "abc");
                browser.pressButton("#login", function (res){
                    browser.location.pathname.should.equal(routeToVisit);
                    done();
                });
            });
    });

    it('offers dashboards should redirect correctly', function(done){

        should.exist(browser.query("#dbOffers"));
        should.exist(browser.query("#dbOffersValue"));
        should.exist(browser.query("#dbOffersText"));
        browser.pressButton("#dbOffers", function(res){
            browser.location.pathname.should.equal("/offerSummary");
            done();
        });
    });
});

任何帮助都将不胜感激。

0 个答案:

没有答案