У меня этот метод высмеивать с NSubstitute:изменения значения параметра в NSubstitute
public T VoerStoredProcedureUit<T>(string naam, params SqlParameter[] parameters)
Метод испытания с использованием он посылает 2 SqlParameters этого метода. Предполагается, что VoerStoredProcedureUit изменит значения этих параметров, чтобы тестируемый метод смог извлечь их.
Я создал следующий с NSubstitute:
SqlParameter[] param =
{
new SqlParameter("@pat_id", SqlDbType.BigInt) {Direction = ParameterDirection.Output, Value = "Melding"},
new SqlParameter("@Melding", SqlDbType.VarChar, 4096) {Direction = ParameterDirection.Output, Value = 2}
};
productieVerbinding.VoerStoredProcedureUit<PatientNieuwResultaat>(Arg.Any<string>(),
Arg.Any<SqlParameter[]>()).ReturnsForAnyArgs(x =>
{
x[1] = param;
return PatientNieuwResultaat.Succes;
});
Установка однако поднимается исключением:
A first chance exception of type 'NSubstitute.Exceptions.ArgumentIsNotOutOrRefException' occurred in NSubstitute.dll
Additional information: Could not set argument 1 (SqlParameter[]) as it is not an out or ref argument.
Как вы вернуть значение, если метод использует неявно эталонные значения?
Как-то назначение элементов в массиве непосредственно новым переменным не сработало, но оно поставило меня в правильное направление. Спасибо за это, forsvarir. –