首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数不传入chai

参数不传入chai
EN

Stack Overflow用户
提问于 2017-05-31 11:54:48
回答 1查看 776关注 0票数 0

我试着通过chai测试我的PUT路由,把我通过chai发送的数据传递到函数中没有得到正确的传递。当我使用console.log检查loanID的值时,它是未定义的。我不确定这是因为我使用了一种不正确的方法来传递方法。使用邮递员进行测试时,该路线运行良好。

摩卡-柴考:

代码语言:javascript
复制
describe('PUT /loanApproval', () => {
    it('it should give approval to loans', (done) => {
        const loan = new Loan({ loanID : 1,
                                manager : 'John Doe',
                                status : 'Approve'});

        loan.save((err, loan) => {
            chai.request(server)
                .put('/loanApproval')
                .send(loan)
                .end((err, res) => {
                    res.should.have.status(200);
                    res.body.should.be.a('object');
                    res.body.should.have.property('result');
                    res.body.result.should.have.property('loanID').eql(1);
                    res.body.result.should.have.property('manager');
                    res.body.result.should.have.property('status');
                    done();
                });
        });
    });
});

功能:

代码语言:javascript
复制
//loan aproval
this.loanApproval = function(req,res) {
    const loanID = req.params.loanID;
    //geting existing details from loan
    Loan.findOne({ 'loanID' : loanID }, function(err, loan) {
        if(err) {
            console.log(err);
            return res.send({'error':err});
        }
        else if (!loan) {
            // If loan doesn't exist i.e. the wrong loanID was given
            req.log.error('Loan does not exist to update: ', loanID);
            return res.json({'error':'Record does not exist'});
        }

        //update deteails
        loan.manager = req.params.manager;
        loan.status = req.params.status;

        //send data to database
        loan.save(function(err, result) {
            if(err) {
                console.log(err);
                return res.send({'error':err});
            }
            else {
                return res.json({'Aproval details':result});
            }
        });
    });
};

错误:

代码语言:javascript
复制
Loan PUT /loanApproval it should give approval to loans:
 Uncaught AssertionError: expected { error: 'Record does not exist' } to 
  have a property 'result'
 at chai.request.put.send.end (test\loan.js:261:46)
 at Test.Request.callback (node_modules\superagent\lib\node\index.js:619:12)
 at node_modules\superagent\lib\node\index.js:795:18
 at IncomingMessage.<anonymous> 
  (node_modules\superagent\lib\node\parsers\json.js:16:7)
 at endReadableNT (_stream_readable.js:975:12)
 at _combinedTickCallback (internal/process/next_tick.js:80:11)
 at process._tickDomainCallback (internal/process/next_tick.js:128:9)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-31 13:43:08

您的路由处理程序函数使用req.params,它用于指定的路由参数(用:xxx占位符声明的路由)。

您的测试表明,您应该使用的不是req.params,而是req.body

我不知道为什么邮递员会像你所说的那样有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44284129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档