我们目前正在从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;
}
}
我有以下方法,我想检查传递给它的参数是否正确:
public interface IHelper
{
Task<object> ExecuteScalarProcedureAsync(DatabaseParams data);
}
如何测试传递给该方法的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));
helperMock
模拟了接口 IHelper
,其中包含 ExecuteScalarProcedureAsync
方法。
ReceivedWithAnyArgs
而不是Received
来调用我的对象。 - youngrrrr