1

我正在使用 supertest 和 mocha 对 strongloop/loopback API 进行一些测试。标准端点之一是模型/更新。Update 实际上是PersistedModel.updateAll的一种形式,它接受查询,然后发布到与查询匹配的所有条目。这是资源管理器中成功请求的图片:

请注意,请求 URL 主要只是一个查询字符串,它返回 204。我从 superagent文档中知道,您可以通过帖子提交查询。但是,在我的测试中复制它时我遇到了很多麻烦。这是我的要求声明:

var request = require('supertest');
var app = require('../server');
var assert = require('chai').assert;
var chance = require('chance').Chance();

这是我的测试

describe('/api/Points/update', function(){
    var updatedZip = "60000";

it('should grab a Point for a before reference', function(done) {
   json('get', '/api/Points/' +addID )
   .end(function(err, res) {
       assert.equal(res.body.zipcode, addZip, 'unexpected value for zip');   
      done();
    });
  });
it('should update the Point w/ a new zipcode', function(done) {
   var where = {"zipcode": "60035"}; 
   var data ={"zipcode": updatedZip};

   request(app)
    .post('/api/Points/update')
    .query({"where": {"zipcode": "60035"}})
    .send({                 
       data : data
     })
   .end(function(err, res) {
       assert.equal(res.status, 204, 'update didnt take');
       done();
      });
    });
it('should check to see that the Point was updated', function(done) {
  json('get', '/api/Points/' +addID )
  .end(function(err, res) {
      assert.equal(res.body.zipcode, updatedZip, 'updated zip was not applied');    
   done();
  });
});

第一个测试通过,这意味着它返回了 204 作为请求的状态,但是它失败了第二个测试,这意味着即使它发现查询可以接受,它实际上并没有应用更新。我尝试了许多不同的配方,但都没有奏效。请让我知道我怎么可能模拟这个!在此先感谢您的帮助!

4

0 回答 0