2016-11-28 16 views
1

私はジャスミンが初めてで、基本的なテストを実行しようとしていますが、エラーが続いています。ジャスミンノード本体が定義されていません

var request = require('request'); 
var base_url = 'http://localhost:8080' 
var getdata = require('../modules/getdata.js') 
var index = require('../index.js') 
describe("GetData Test",function(){ 

describe("Get /", function() { 
it("returns statusCode 200", function(done) { 
    request.get(base_url, function(error, response, body){ 
    expect(response.statusCode).toBe(200); 
    done(); 
    }); 
}); 
it("returns Api is Online", function(done) { 
    request.get('base_url', function(error, response, body){ 
    console.log(request.body) 
    expect(body).toBe("Api is online"); 
    index.closeServer(); 
    done(); 
    }); 
}); 
}); 
}); 

このコードは、次の機能を

server.get('/', getdata.test) 

をテストし、getdata.testは、最初のテストのように、通過以下

exports.test = function test(req, res) { 
    res.send('Api is online') 
}; 

であるが、以下のように私のテストでありますresponseCodeは実際には200です。しかし、2番目のテストでは、本体が定義されていないため、エラーが発生しています。どんな助け?以下のようにエラーがある:

[email protected]:~/workspace$ npm test 

> [email protected] test /home/jack/workspace 
> jasmine-node spec 

App running on port 8080 
.undefined 
F 

Failures: 

    1) GetData Test Get/returns Api is Online 
    Message: 
    Expected undefined to be 'Api is online'. 
    Stacktrace: 
    Error: Expected undefined to be 'Api is online'. 
    at Request._callback (/home/jack/workspace/spec/getdata_spec.js:17:22) 
    at self.callback (/home/jack/workspace/node_modules/request/request.js:186:22) 
    at emitOne (events.js:96:13) 
    at Request.emit (events.js:188:7) 
    at Request.init (/home/jack/workspace/node_modules/request/request.js:274:17) 
    at new Request (/home/jack/workspace/node_modules/request/request.js:128:8) 
    at request (/home/jack/workspace/node_modules/request/index.js:54:10) 
    at Function.get (/home/jack/workspace/node_modules/request/index.js:62:12) 

Finished in 0.051 seconds 
2 tests, 2 assertions, 1 failure, 0 skipped 


npm ERR! Test failed. See above for more details. 

答えて

1

あなたが応答bodyの代わりrequest.bodyを意味しました。また、base_urlの代わりに'base_url'を取得しています。試してみてください:

it("returns Api is Online", function(done) { 
    // Here you were getting 'base_url', which threw an error because that's not a valid url 
    request.get(base_url, function(error, response, body){ 
    console.log(body); // Here you were logging request.body 
    expect(body).toBe("Api is online"); 
    index.closeServer(); 
    done(); 
    }); 
}); 
関連する問題