我们目前正在从RhinoMocks迁移到NSubstitute.
我有一个采用类型对象的方法DatabaseParams.该类具有以下结构(简化):
public class DatabaseParams
{
public string StoredProcName { get; private set; }
public SqlParameter[] Parameters { get; private set; }
public DatabaseParams(string storeProcName, SqlParameter[] spParams)
{
StoredProcName = storeProcName;
Parameters = spParams;
}
}
Run Code Online (Sandbox Code Playgroud)
我有以下方法我想检查传递给它的参数是否正确:
public interface IHelper
{
Task<object> ExecuteScalarProcedureAsync(DatabaseParams data);
}
Run Code Online (Sandbox Code Playgroud)
如何DatabaseParams使用正确的值测试传递给该方法的实例?
我可以在RhinoMocks中用这样的方法做到这一点:
helperMock.Expect(m => m.ExecuteScalarProcedureAsync(Arg<DatabaseHelperParameters>.Matches(
p => p.StoredProcName == "up_Do_Something"
&& p.Parameters[0].ParameterName == "Param1"
&& p.Parameters[0].Value.ToString() == "Param1Value"
&& p.Parameters[1].ParameterName == "Param2"
&& p.Parameters[1].Value.ToString() == "Param2Value"
))).Return(Task.FromResult<DataSet>(null));
Run Code Online (Sandbox Code Playgroud)
正在模拟包含该方法helperMock …