私は単体テストプライベートメソッドの素晴らしい方法を発見しました。C#でプライベートオブジェクトの型の安全を作成する方法
これは、メソッド名が文字列としてどのように入力されるのか気に入らない限り、素晴らしいことです。 「安全ネット」を作る方法はありますか?メソッドがオブジェクトに存在しない場合、コンパイラがコンパイラの時間エラーをスローできるように、メソッド名を入力します。
プライベートメソッド:
public class BankAccount
{
//Private method to test
private bool VerifyAmount(double amount)
{
return (amount <= 1000);
}
}
単体テスト:
[TestMethod()]
public void VerifyAmountTest()
{
//Using PrivateObject class
PrivateObject privateHelperObject = new PrivateObject(typeof(BankAccount));
double amount = 500F;
bool expected = true;
bool actual;
actual = (bool)privateHelperObject.Invoke("VerifyAmount", amount);
Assert.AreEqual(expected, actual);
}
私は何人かの人々は、我々はユニットテストのプライベートメソッドべきではないと考えていることを知っています。それはこの質問の目的ではないので、その質問について話し合わずに話題に留もう。
プライベートメソッドをテストすべきではないと考えましたか? – CodeCaster