0

そのため、特に Web サービス (SOAP バージョン) の単体テストに飛び込もうとしていますが、参照されたネストされたクラス OtherClass.aNestedClass を渡すための適切な形式を取得するのに非常に苦労しています。

以下に示すように、OtherClass と aNestedClass の両方のクラスが public です。メソッド 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...
}
4

1 に答える 1

0

The parameter in readDB() is specifying a type, not a parameter variable. Try this:

public class MyClass
{
    public void readDB(ref OtherClass.aNestedClass myNestedClassInstance)
    {
        //do some DB reading, modify strings in class passed by ref.
    }
}
于 2013-06-19T04:12:21.107 に答える