Это немного зависит от того, какую среду тестирования и язык вы используете.Большинство из них (по крайней мере, в C #) позволяют писать так называемые управляемые данными тесты .Это позволяет вам указать метод тестирования аргументами, которые вы хотите проверить, и в то же время указать ожидаемый результат.
Например, такой тест с Gallio будет выглядеть следующим образом:
[Row("prj1", "1.0", true)]
[Row("blah", "Hippopotamus", false)]
[Row(null, "1.0", false, ExpectedException = typeof(NullReferenceException))]
public void TestArguments(string arg1, string arg2, bool expectedResult)
{
var result = myApp.ValidateArguments(args);
Assert.AreEqual(expectedResult, result);
}
Таким образом, вы можете легко проверить все комбинации аргументов, которые необходимо проверить, и для этого не требуется слишком много кода.
По замыслу невозможно проверитьдля всех неверных аргументов, и это часто (главным образом) также верно для пустых аргументов - они могут быть теоретически конечными, но практически слишком много возможных комбинаций.Все, что вы можете сделать в таком случае, это проверить возможные, важные и значимые комбинации, о которых можно подумать.Для этого очень полезно получить информацию с точки зрения конечного пользователя / бизнес-стороны - они часто придумывают варианты использования, которые выходят далеко за рамки фантазии разработчика ...
HTH.Томас