2
一般的な親クラスから継承されたメソッドをモックしようとしています。私のコードはこのように見えます。継承されたメソッドを模擬する方法
public interface IBaseRepository<T>
{
IEnumerable<T> FindMany(Func<T, bool> condition);
}
public interface IPersonRepository : IBaseRepository<person>
{
//Here I got some specifics methods for person repository
}
私のテストコードは次のようになります。
private IPersonRepository mockPersonRepository { get; set; }
[TestMethod]
public void TestMehtod()
{
LogonModel model = CreateLogonModel("[email protected]", "test", "Index");
person p = new person() { Email = model.Email, password = model.Password, PersonId = 1 };
mockPersonRepository.Stub(x => x.FindMany(y => y.Email == model.Email && y.password == model.Password)).Return(new List<person> {p});
mockPersonRepository.Replay();
var actual = instanceToTest.LogOnPosted(model) as PartialViewResult;
Assert.AreEqual("_Login", actual.ViewName);
}
私は私が私スタブ、doesntの作品、リターン人は常にnullであることをSE 2010対でデバッグツールをすることができます使用しています。私はFindManyメソッドを仮想として宣言しました。
誰かがその方法をスタブする方法を知っていますか?私はRhinoMocksを使っています。
はそれが本当に私を助け、あなたの助けをありがとう!今私はモデルLogonPostedに渡すモデルを実際に使っていることをテストしたい。どうやってやるの?私はそれを次のようにしようとしています: mockPersonRepository.Expect(x => x.FindMany(Arg>。)Matches(y => y(p)))。 しかし、そのようなテストを設定すると、常に緑色になります。どのように私は本当にモデルからのデータでpersonRepositoryを呼び出すことを期待しています。 –
Rikard