我有以下方法来模拟:
AddParameter<T>(string parameterName, T value)
AddParameter<T>(string parameterName, T? value) where T : struct;
private void SetupAddParameter<T>(){
mock.Setup(u => u.AddParameter<T>(Moq.It.IsAny<string>(), Moq.It.IsAny<T>()))...
mock.Setup(u => u.AddParameter<T>(Moq.It.IsAny<string>(), Moq.It.IsAny<T?>())) -> not working
}
我如何模拟第二种方法?
答案 0 :(得分:0)
好的,你不能在同一个方法中进行这两种设置,你需要在自己的方法中使用where T : strut
限制来执行struct版本:
private void SetupAddParameter<T>()
{
// Setup for AddParameter<T>(string parameterName, T value);
mock.Setup(u => u.AddParameter<T>(Moq.It.IsAny<string>(), Moq.It.IsAny<T>()));
}
private void SetupAddParameter<T>() where T : struct
{
// Setup for AddParameter<T>(string parameterName, T? value) where T : struct;
mock.Setup(u => u.AddParameter<T>(Moq.It.IsAny<string>(), Moq.It.IsAny<T?>()));
}