通过引用将嵌套类作为参数传递给单元测试方法

时间:2013-06-19 04:02:31

标签: c# web-services unit-testing soap accessor

所以我正在尝试深入研究单元测试,特别是Web服务(SOAP版本),并且在获取传递引用的嵌套类OtherClass.aNestedClass的适当格式方面遇到了难以置信的困难。

如下所示,OtherClass和aNestedClass这两个类都是公共的。 readDB方法是单元测试的目标方法。但是,当我尝试声明一个OtherClass的实例时,我只获得了OtherClass_Accessor的选项,这使得readDB方法调用非常高兴(特别是我得到'最好的重载匹配...有一些无效的参数'错误)

如何通过引用正确地将类作为参数传递给单元测试的访问器方法调用?

public class MyClass
{
    public void readDB(ref OtherClass.aNestedClass oa)
    {
        oa.A = "abc";
        oa.B = "def";
    }
}

public class OtherClass
{
    public class aNestedClass
    {
        public string A;
        public string B;
    }
}

我的样本尝试:

[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("D:\\MyProject", "/MyProject")]
[UrlToTest("http://localhost/MyProject/default.aspx")]
public void readDBTest()
{
    OtherClass_Accessor.aNestedClass oa = new OtherClass_Accessor.aNestedClass();

    readDB(ref oa);

    // assert statements...
}

1 个答案:

答案 0 :(得分:0)

readDB()中的参数指定type,而不是参数变量。试试这个:

public class MyClass
{
    public void readDB(ref OtherClass.aNestedClass myNestedClassInstance)
    {
        //do some DB reading, modify strings in class passed by ref.
    }
}