-1

Visual Studio 2012 で既存のクラス "Person" の単体テストを書いています。クラスには 2 つのパラメーターといくつかのビジネス ロジックを持つコンストラクターがあります。

TestMethod()        
public void VerifyPersonTest()
{
    //Using PrivateObject class
    PrivateObject privateHelperObject = new PrivateObject(typeof(Person));

    //Some business logic                            

}

上記のテストを実行しようとすると、「System.MissingMethodException {"このオブジェクトにパラメーターなしのコンストラクターが定義されていません。"}」という例外が発生しました。そのため、パラメーターなしのコンストラクターを person クラスに追加し、問題なくテストを実行できました。

次の質問があります

1) パラメーターなしのコンストラクターを person クラスに追加したため、Person クラスの既存の機能が壊れますか?

2) PrivateObject privateHelperObject = new PrivateObject(typeof(Person));

上記のステートメントは、person クラスのパラメーターなしのコンストラクターを呼び出します。2 つのパラメーターを指定してコンストラクターを呼び出したい場合、上記のステートメントをどのように記述すればよいでしょうか?

4

1 に答える 1

0

Personオブジェクトを自分でインスタンス化することもできます。

var myPerson = ...;
var privateHelperObject = new PrivateObject(myPerson);
于 2013-08-07T10:51:29.123 に答える