Я написал функцию, которая извлекает некоторые данные из базы данных (используя хранимую процедуру, базу данных Oracle).
Хранимая процедура имеет 4 параметра, и один из них является параметром am out. Вот мой код для этого:
string commandName = "someStoredProc";
List<IDataParameter> parameters = new List<IDataParameter>() { new SqlParameter("@param1", param1), new SqlParameter("@param2", param2), new SqlParameter("@param3", param3) };
SqlParameter calcId = new SqlParameter("@param4", SqlDbType.BigInt);
calcId.Direction = ParameterDirection.Output;
parameters.Add(calcId);
Dictionary<long, ITrade> trades = _genericDataReader.ExecuteSqlQuery(parameters, CommandTypeEnum.Command, commandName);
long CalculationID = (long)calcId.Value;
Этот код работает нормально.
Теперь я пишу модульные тестовые примеры для этого. Я могу смоделировать результат базы данных, что захочу, но не этот четвертый параметр:
тест не удался, когда он попытался преобразовать calcId.Value в long, если он равен нулю.
Как я могу издеваться над этим значением параметра out?