私はマシンの仕様を使ってテストをいじっていましたが、私にはできないことがあり、誰かが以前にそこにいたことがあるかどうか疑問に思っていました。
Rhino Mocksを使用して、ラムダ式を使用するメソッドのスタブを作成する方法はありますか?次のことができることがわかりました
サンプルクラスにこのメソッドを含める:
public void UpdateVisit(int userId){
var user = repository.FindBy<User>(x=>x.Id==userId && user.IsActive ==true);
user.Visit = user.Visit + 1;
repository.Save(user);
}
私はこのようにメソッドをスタブすることができます:
//...Inside test method
var user = new User();
repository.Stub(x=>x.FindBy<User>(Arg<Expression<Func<User,bool>>>.Is.Anything)).Return(user);
問題は、特定のラムダ式のためだけに、Any Lambda式ではなくメソッドをスタブしたいので、この式がメソッドで変更された場合にテストが失敗するようにすることです... "x=>x.Id==userId && user.IsActive ==true"
データベースに移動しないモックリポジトリを作成して、ラムダでの動作をテストできると思いますが、これには別のアプローチがあるかどうか疑問に思っていました...
これに関する提案に感謝します、ありがとう