Пустой аргумент командной строки

Для «out» для меня кажется, что работает следующее.

public interface IService
{
    void DoSomething(out string a);
}

[TestMethod]
public void Test()
{
    var service = new Mock();
    var expectedValue = "value";
    service.Setup(s => s.DoSomething(out expectedValue));

    string actualValue;
    service.Object.DoSomething(out actualValue);
    Assert.AreEqual(actualValue, expectedValue);
}

Я предполагаю, что Moq смотрит на значение «expectedValue», когда вы вызываете Setup и запоминаете его.

Для ref я также ищу ответ.

Я нашел следующее руководство по QuickStart полезным: https://github.com/Moq/moq4/wiki / Quickstart

0
задан Kiran Patil 16 January 2019 в 21:07
поделиться

2 ответа

3 варианта:

  1. изменить сценарий, чтобы переключаться между аргументами 8 и 9. Тогда у вас всегда будет одно и то же число, даже если 9 пусто.
  2. передать аргумент как "" вместо ничего.
  3. измените сценарий так, чтобы вы анализировали свою собственную командную строку и меняли все по своему вкусу.
0
ответ дан xyious 16 January 2019 в 21:07
поделиться

Ваш скрипт не работает с введенным вами вводом (если вы на самом деле добавляете отсутствующий аргумент), потому что '{\"change_request\":\"chg0123456\"}' это не то, что JS может анализировать как строку JSON. Кроме того, вы не передаете в скрипт никаких пустых значений из своего ввода (просто пустое пространство не считается фактическим вводом).

Вам нужно изменить его на '{"change_request":"chg0123456"}' и передать пустое значение в виде пустой строки ''.

Этот вход работает правильно.

node index.js DELETE https://Test1234.execute-api.us-west-2.amazonaws.com us-west-2 /qa/transit-connectivity/api/v1/sites/tdcloudtsttd03 AKIAJ4Y5DGqwewqeqw CFdAgsdtqweqwe/SKqDezdqweewofWrUXXBbQoMy '' '{"change_request":"chg0123456"}'

Если вам действительно нужен объект в этом формате, то вам нужно удалить из него \ символов, прежде чем вы сможете вызвать JSON.parse для него.

awsAdditionalParams = JSON.parse(
    process.argv[9].split('\\').join('') || '{}'
);

Если вы сначала хотите проверить, не является ли последний аргумент не пустым, и только затем запустить приведенный выше код, вы можете использовать троичный оператор, как этот.

awsAdditionalParams = process.argv[9]
    ? JSON.parse(process.argv[9].split('\\').join('') || '{}')
    : '';
0
ответ дан Matus Dubrava 16 January 2019 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: