присвойте значение% s в почтовой функции mocha - PullRequest
0 голосов
/ 29 мая 2018

Я пишу тесты на языке мокко, и у меня есть переменная, в которой есть строка с %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, чтобы, наконец, она была преобразована в одну строку.

Пожалуйста, помогите мне добиться этого, или если я ошибаюсь, то что должно быть правильнымспособ сформировать одну строку, которая может быть передана в функцию post.

1 Ответ

0 голосов
/ 29 мая 2018

Эта функция ниже проверяет все заполнители %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);
}
...