我正在尝试设置一个简单的测试来演示如何模拟私有方法,但是当我运行它时,我得到以下异常:
mscorlib.dll 中出现“System.ArgumentException”类型的异常,但未在用户代码中处理
附加信息:数组不能为空。
我想GetUsers()
在以下课程中进行模拟:
public sealed class UserRepository
{
private IList<Models.User> GetUsers()
{
throw new NotImplementedException();
}
}
这是我的单元测试:
[TestMethod]
public void TestMethod()
{
//Arrange
UserRepository userRepo = Mock.Create<UserRepository>(Behavior.CallOriginal);
IList<User> expected = new User[5];
Mock.NonPublic.Arrange<IList<User>>(userRepo, "GetUsers").Returns(expected);
//Act
var inst = PrivateAccessor.ForType(typeof(UserRepository));
var users = (IList<User>)inst.CallMethod("GetUsers"); //Error occurs here
//Assert
Assert.AreEqual(5, users.Count);
}
任何想法为什么我会收到此错误?