Нок - Тела не совпадают

Почему Нок выдает мне ошибку о том, что тела не совпадают??

вот мой код.

it('Should Delete /user/removeuserskills', function(done){

    mockRequest
    .delete('/user/removeuserskills',{skill:'accountant'})
    .reply(201,{
      'status':200,
      'message': '200: Successfully deleted skill'
      })
    .log(console.log)
    request
    .delete('/user/removeuserskills',{skill:'accountant'})
    .end(function(err, res){
      if(err){
        console.log(err);
      }
      else{
      expect(res.body.status).to.equal(200);
      expect(res.body.message).to.equal('200: Successfully deleted skill');}
      done();
    });

  });

Я получаю этот ответ, когда использую .log

Я понятия не имею, почему он говорит мне, что тела не совпадают. Я получаю это конкретно.

matching http://localhost:8080 to DELETE http://localhost:8080/user/removeuserskills: true 
bodies don't match:                                                                        
 { skill: 'accountant' }                                                                   

{ Error: Nock: No match for request {                                                      
  "method": "DELETE",                                                                      
  "url": "http://localhost:8080/user/removeuserskills"                                     
}                                                                                          

person user3450754    schedule 04.03.2017    source источник


Ответы (1)


На github есть открытая проблема, которую вы в настоящее время не можете использовать .delete( адрес, данные).

Но вы можете легко исправить это следующим образом:

mockRequest
	.delete('/user/removeuserskills', {skill: 'accountant'})
	.reply(201, {
		'status': 200,
		'message': '200: Successfully deleted skill'
	})
	.log(console.log)

request
	.delete('/user/removeuserskills')
	//Just call .send here instead
	.send({skill: 'accountant'})
	.end(function (err, res) {
		...
		done();
	});

Если вы вызываете .send(data) вместо передачи данных в метод .delete, он работает нормально.

person Antonio Narkevich    schedule 04.03.2017
comment
омг спасатель, я собирался сделать именно это, этим утром. :D хаха спасибо - person user3450754; 04.03.2017