0

テストする必要がある次の要求があります。

curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"content":{"value":"18.5", "date": "20120413"}}' 'http://SERVER:PORT/marks'

私はexpressjsとモカを使用しています。モカのリクエストでヘッダーを追加してjsonパラメーターを指定する方法が見つかりませんでした:

it('Checks creation of a new mark', function(done){
   request.post('http://SERVER:PORT/marks', function(err, response, body){
   // Some headers and parameters should be set in the request
   response.statusCode.should.equal(201);
  done();
});

});

ただし、以下のテスト (GET 要求) はうまく機能します。

it('Checks existence of marks for user dummyuser', function(done){
  request.get('http://SERVER:PORT/user/dummyuser/marks', function(err, response, body){
    response.statusCode.should.equal(200);
    done();
  });
});

アップデート

以下は魅力のように機能します:(私はモカによって作成されたある種の変数を要求します)。

 request(
  { method: 'POST'
  , uri: 'http://SERVER:PORT/marks'
  , headers: { 'content-type': 'application/json' , 'accept': 'application/json' }
  , json: { "content":{"value":"18,5", "date": "2012-04-13"} }
  }
, function(err, response, body){
  response.statusCode.should.equal(201);
  done();
});
4

1 に答える 1

2

ドキュメントを見てください。カスタムヘッダーを使用して投稿する方法についての優れた説明があります. 私にとってうまくいく方法の1つは、次のとおりです。

var options = {
  host: 'localhost',
  port: 80,
  path: '/echo/200',
  method: 'POST',
  headers: {
    "X-Terminal-Id" : terminalId
  }
};
var data = ""
var req = https.request(options, function(res) {
  res.on('data', function(d) {
    data += d;
  });
  res.on('end', function(err){
    //Check that data is as expected
    done(null, data)
  })
});
req.end();

req.on('error', function(err) {}
  done(err) 
});
于 2013-03-25T09:49:02.780 に答える