Моя Azure функция должна вызывать исключение в случае пустой строки - PullRequest
0 голосов
/ 07 мая 2020

Код метода Run моей Azure функции таков:

public static void Run([HttpTrigger("get")] HttpRequest req, ILogger log) {
   string parameter = req.Query["parameter"];
   if (string.IsNullOrEmpty(parameter)) {
      throw new ArgumentNullException("Parameter must be set.");
   }
   log.LogInformation(parameter);
}

У меня есть следующие случаи при запуске функции и передаче параметра в HTTP-запрос:

  • HTTP GET без параметра (/api/ServiceBusOutput): исключение (правильно)
  • HTTP GET с не установленным параметром (/api/ServiceBusOutput?parameter): исключение (правильно)
  • HTTP GET с параметром в виде пустой строки (/api/ServiceBusOutput?parameter=""): успех, но он должен завершиться ошибкой (URL становится /api/ServiceBusOutput?parameter=%22%22)
  • HTTP GET с параметром в виде строки (/api/ServiceBusOutput?parameter="something"): success ( правильно)

Как сделать, чтобы третий тест не прошел?

1 Ответ

0 голосов
/ 07 мая 2020

Значение "" является допустимым параметром строки запроса. Строковые значения не будут передаваться в кавычках через URL-адрес.

Например, если вы хотите получить слово something в качестве параметра, оно будет передано как /api/ServiceBusOutput?parameter=something.

Если вы пытаетесь проверить значение пустой строки, подойдет любое из следующих действий.

/api/ServiceBusOutput?parameter= /api/ServiceBusOutput

...