【问题标题】:Jasmine-node tests always passJasmine 节点测试总是通过
【发布时间】:2017-01-11 06:15:28
【问题描述】:

我是 BDD 的新手,出于某种原因,我的代码似乎总是通过,尽管我还没有编写任何代码。有人可以解释为什么会这样吗?

项目设置:

我有一个包含 package.json 的项目文件夹和一个包含以下声明的测试部分:“.node_modules/.bin/jasmine-node”和一个名为 spec 的文件夹,其中包含以下代码文件:

    var request = require("request");

    describe("Web Server Test", function() {
        it("GET /", function(done) {
            request.get("http://localhost/", function(error, request, body) {
                expect(body).toContain("Hello, World!");
            });
            done();
        });
    });

这是我得到的输出:

C:\Users\\OneDrive\Documents\Websites\Projects\Node\project>npm 测试规范/app_spec.js

Project@0.0.0 测试 C:\Users\\OneDrive\Documents\Websites\Projects\Node\project 茉莉花节点“spec/app_spec.js”

.

在 0.031 秒内完成 1 次测试,0 次断言,0 次失败,0 次跳过

【问题讨论】:

    标签: node.js jasmine-node


    【解决方案1】:

    done 回调必须在请求回调中调用...

    it("GET /", function(done) {
      request.get("http://localhost/", function(error, request, body) {
        expect(body).toContain("Hello, World!");
    
        // THIS IS ASYNC
        done();
      });
    });
    

    【讨论】:

    • 我现在没有得到任何输出
    • 我将您的 sn-p 更改为标准代码块。片段仅用于运行示例。
    • @AidenPearce console.log(error) 查看请求在做什么。您还可以将这些测试设置为超时时间过长的异步调用。
    • @Soviut 谢谢。如果您没有收到任何响应,则意味着您的请求比 jasmine 允许的时间更长 (stackoverflow.com/questions/9867601/…)……或者,至少,您的测试失败了……尝试捕获错误
    • @AidenPearce jasmine.github.io/edge/… 您可以在您的 it() 声明中添加一个以毫秒为单位的数字来设置超时。 it('whatever', function(done) { done(); }, 1000);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 2012-06-14
    • 2013-12-16
    • 2015-06-18
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多