プライベート メソッドをモックする方法を示す簡単なテストをセットアップしようとしていますが、実行すると次の例外が発生します。
タイプ 'System.ArgumentException' の例外が mscorlib.dll で発生しましたが、ユーザー コードで処理されませんでした
追加情報: 配列が空でない可能性があります。
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);
}
このエラーが発生する理由はありますか?