「ビルダー」の1つでは、MOQ SetupGetを使用する以下のメソッドがあります。私はFakeItEasyを使用するように書き直そうとしましたが、WithReturnTypeはタイプを前もって知っていなければならない汎用バージョンしか提供していないため、FakeItEasyを使用するために書き直そうとしました。 実行時に決定される実際のタイプの非ジェネリックバージョンはありません。MOQプロパティの設定をFakeItEasyに変換する
私は30分を費やしました。 FakeItEasyに、そう... MOQ表現の私の限られた知識で
public void With<TProperty>(Expression<Func<TCommand, TProperty>> expression, TProperty value)
{
CommandFake.SetupGet(expression).Returns(value);
}
と
オリジナルの方法より良い方法があるかもしれない私はそれがFakeItEasyを使用するために再書き込みを試みたが、私は設定できません。戻り値
public void With<TProperty>(Expression<Func<TCommand, TProperty>> expression, TProperty value)
{
var methodName = string.Empty;
var e = (LambdaExpression) expression;
if (e.Body.NodeType == ExpressionType.MemberAccess)
{
var memberInfo = ((MemberExpression) e.Body).Member;
if (memberInfo.MemberType == MemberTypes.Property)
{
methodName = "get_" + memberInfo.Name;
}
//A.CallTo(CommandFake).Where(call => call.Method.Name == methodName)
// .WithReturnType<>()
}
//CommandFake.SetupGet(expression).Returns(value);
}
他の方法がありますか?私はWithのためのこのメソッドシグネチャに固執していません。 1は
With(x=>x.someProp=someValue)
私は二次メソッドシグネチャを取得しようとしていました(式
epitka
喜んで助けました。 –