3
다음과 같은 코드를 작성할 수 있습니까? 내가 테스트 프레임 워크의 일부로 반영하고있는 객체에 Moq을 사용하려고합니다. 아래의 코드는 "처리되지 않은 표현 유형 : Moq의 'Goto'예외를 발생시킵니다. 이것은 뭔가 다른 것을 기대합니다. 비록 그것이 작동해야하는 것처럼 보이는 종류의!동적으로 생성 된 표현 트리/람다를 moq에 전달하는 Moq 및 반영
private void button1_Click(object sender, EventArgs e)
{
Ifoo = foo Foo();
// Create input parameter for lambda
ParameterExpression value = Expression.Parameter(typeof(IFoo), "value");
// create return statement for lambda
Expression setupProperty = Expression.Return(Expression.Label(), Expression.Property(value, "Bar"), typeof(string));
// convert expression to lambda (should now be the equivalent of "v => v.Bar")
var func = Expression.Lambda<Func<IFoo, string>>(setupProperty, value);//.Compile();
//string s = func(foo); // this bit works fine in .Compile() is included
var mockFoo = new Mock<IFoo>();
mockFoo.SetupProperty(func); // exception thrown by moq here, obviously isn't exactly the same as "v => v.Bar"
mockFoo.Object.Bar = "Burge+";
}
고마워요!