簡體   English   中英

為什么這個茉莉花節點測試不失敗?

[英]Why isn’t this jasmine-node test failing?

我正在使用Express.js和Jasmine-node進行測試。 這是我的服務器代碼:

var express = require('express');
var app = express();

app.get('/', function (request, response) {
  response.send("Bonjour!");
});

module.exports = app;

這是測試:

var request = require('http');
var app = require('../src/app');
var server;

describe('textreader', function(){

  beforeEach(function(done){
    server = app.listen(3333, function (err, result) {
      if (err) {
        done(err);
      } else {
        done();
      }
    });
  });

  afterEach(function(){
    server.close();
  });

  it('responds to /', function(){
      request.get("http://localhost:3333", function(response){
        console.log(response.body);
        expect(response.body).toEqual('foo');
      });
  });

});

這是輸出:

mike@sleepycat:~/projects/textreader☺  grunt
Running "jshint:files" (jshint) task
>> 3 files lint free.

Running "jasmine_node" task

textreader
    responds to /

Finished in 1.218 seconds
1 test, 0 assertions, 0 failures, 0 skipped

Done, without errors.

因此很顯然,該測試將失敗,因為服務器只能生成文本“ Bonjour!”。 其次,console.log根本不產生任何輸出。

我需要做些什么才能使此測試失敗?

您的示例接近在茉莉花節點頁面上描述異步測試的內容。

您需要添加done()以使測試知道要等待500毫秒(默認情況下)以使事務完成(或顯示超時錯誤)。 您的代碼如下所示:

it('responds to /', function(){
      request.get("http://localhost:3333", function(response){
        console.log(response.body);
        expect(response.body).toEqual('foo');
        done();
      });
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM