如何用"out"参数编写私有函数的C#测试用例?

rbo*_*man 2 c# nunit unit-testing visual-studio-2010

如何为私有函数的out参数创建单元测试?

我的服务层:

private int LoadProduct(string productId, out IProduct product)
{
    product = this.Load(productId);

    return ErrorCodes.Success;
}
Run Code Online (Sandbox Code Playgroud)

测试用例:

[Test]
public void LoadProductTest()
{
    var offerService = new OfferProcessor();
    var privateOfferService = new PrivateObject(offerService);

    IProduct myProduct = null;

    var result = (int)privateOfferService.Invoke("LoadProduct", 
                       new object[] {"AnId", myProduct });

    Assert.That(result, Is.EqualTo(ErrorCodes.Success));
    Assert.That(myProduct, Is.NotNull());
}
Run Code Online (Sandbox Code Playgroud)

上面的测试用例没有编译.如何通过调用out参数然后在调用后访问它?

Col*_*n D 5

尝试保存通过调用调用的对象数组.

object[] args = new object[] { "AnId", myProduct };
var result = (int)privateOfferService.Invoke("LoadProduct", args);
Assert.That(args[1], Is.NotNull());
Run Code Online (Sandbox Code Playgroud)

/sf/answers/170664861/