【发布时间】:2014-05-30 16:14:14
【问题描述】:
我试图伪造一个带有 out 参数的方法的调用,其中带有一个带有一些基本逻辑的 ReturnsLazily。理想情况下,我可以通过基于 ReturnsLazily 的 AssignsOutAndRefParameters 分配一个值。但是,AssignsOutAndRefParameters 仅在编译表达式时预先接受一个值,我是否缺少任何“懒惰”类型的行为?
Random r = new Random();
int[] value = new int[] { 1 };
A.CallTo(() => loader.TryLoad(A<int>.Ignored, out value))
.WithAnyArguments()
.ReturnsLazily((int key, int[] inValue) =>
{
List<int> result = new List<int>();
if (key > 0)
{
for (int i = 0; i < r.Next(100); i++)
{
result.Add(r.Next());
}
}
value = result.ToArray();
return result.Count > 0;
})
.AssignsOutAndRefParameters(value); //Assigns [1], instead of [r,a,n,d,o,m,i,n,t,s]
【问题讨论】:
标签: fakeiteasy