javascript - 在 mocha post 函数上为 %s 赋值
问题描述
我正在用 mocha 编写测试,我有一个变量,里面有一个%s
字符串
let api = '/api/Boxer/%s/Role';
我有一个名为的变量id
,它保存%s
上面显示的值。
let id = newUser.id;
通常,我将这个 api 传递给post
mocha 的函数,以便发送一个帖子请求,像这样,
request(app)
.post(api)
.send(data)
我的问题是:我想传递变量api
并id
发布函数,以便最终将其解析为单个字符串。
请帮助我实现这一点,或者如果我错了,那么形成可以传递给post
函数的单个字符串的正确方法应该是什么。
解决方案
下面的这个函数检查所有%s
占位符并用它们各自的值替换它们。
function replacePlaceHolders(str, placeholder, new_values) {
var new_str = "";
var pl_len = placeholder.length;
var ptr = 0;
for (var i = 0; i <= str.length - pl_len; ++i) {
for (var j = 0; j < pl_len; ++j) {
if (str[i + j] != placeholder[j]) {
new_str += str[i];
break;
} else if (j == pl_len - 1) {
if (ptr === new_values.length) throw "Insufficient placeholder values given for " + str;
new_str += new_values[ptr++];
i = i + pl_len - 1;
}
}
}
return new_str;
}
try {
console.log(replacePlaceHolders('/api/Boxer/%s/Role', '%s', ['87']));
console.log(replacePlaceHolders('/api/Boxer/%s%s/Role', '%s', ['87', 94]));
console.log(replacePlaceHolders('%s/api/Boxer/%s/%s/Role/%s', '%s', ['some_text', '87', 94, 'javascript']));
console.log(replacePlaceHolders('%s%s%s%s', '%s', ['some_text', '87', 94, 'javascript']));
console.log(replacePlaceHolders('%s%s%s%s', '%s', ['some_text', '87', 94]));
} catch (err) {
console.log(err);
}
推荐阅读
- python - 使用列值重命名/展平数据框
- c# - 如何在 C# 中检查玩家低于 y 坐标的时间
- vue.js - 从 App.vue 发出事件并在组件中捕获
- git - 如何在 csproj 脚本中执行 git 命令?
- javascript - 如何根据 div 当前具有的类更新点击功能?
- python - Sendgrid 示例示例不起作用,如何通过电子邮件发送给多个收件人?
- python - 访问基于部分 MultiIndex 的系列
- java - 是否有旧依赖项的 Neo4j Maven 存储库?
- python - TypeError:“numpy.float64”对象在 fmin numpy 中不可调用
- reactjs - react-bootstrap-table2-paginator 抛出错误,如 Module not found: Can't resolve 'classnames'