gpt4 book ai didi

node.js - 编写环回测试时如何传递输入参数

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:38 25 4
gpt4 key购买 nike

我正在 loopback-testing 的帮助下为我的 Strongloop API 代码编写测试驱动开发。 .

这里他们没有任何关于此的详细文档,所以我陷入了通过 API 调用传递参数的情况

例如我有一个以下案例,

Method : PUT
URL : /api/admin/vineyard/<vineyard_id>

我需要使用此 URL 传递以下参数

1. 'vineyard_id' is a id of vine, it should be an integer .

2. in header = 'token'

3. in body = '{'name':'tastyWine','price':200}'

如何使用此 API 传递这三个参数?

如果只有两种类型的参数,我可以轻松处理

示例:

  Method : POST
`/api/user/members/<test_username>/auth'`

arguments : test_username and password

我可以这样处理,

lt.describe.whenCalledRemotely('POST', 
'/api/user/members/'+test_username+'/auth', {
'password': test_passwords
},

但是我该如何处理上述情况,非常感谢您对此示例的回答。

最佳答案

我不完全确定您的具体问题是什么,但我会尝试逐步完成您应该需要的所有内容。

我假设您正在为您的模型使用预定义的prototype.updateAttributes()方法,如here所述.

接下来的假设是您想要使用内置的身份验证和授权来允许用户调用此方法。鉴于这种假设,您的测试代码中需要类似的内容:

var vineyard_id = 123;  //the id of the test item you want to change
var testUser = {email: 'test@test.com',password: 'test'};
lt.describe.whenCalledByUser(testUser, 'PUT', '/api/admin/vineyard/'+vineyard_id,
{
'name':'tastyWine',
'price':200
},
function () {
it('should update the record and return ok', function() {
assert.equal(this.res.statusCode, 200);
});
}
);

如果您使用的是开箱即​​用的用户模型,那么应该没问题,但如果您按照通常的方式扩展模型,则可能需要在测试文件的早期阶段进行类似的操作:

lt.beforeEach.withUserModel('user');

此外,请注意一些(当前不完整)更新,以便更好地处理内置模型扩展:Suggestions #56 , Add support for non-default models #57 ,和givenLoggedInUser() function throws error #59 .

关于node.js - 编写环回测试时如何传递输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29530819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com