-1
私のメソッドは(オブジェクト送信者、EventArgs e)パラメータとグローバル変数で正確に動作しているので、C#プログラムで私のcalcをテストする方法はわかりません。このメソッドのテストはどのように見えるでしょうか?Voidメソッドのオブジェクトとイベントのパラメータのパラメータ
これは、あなたが計算ロジックをテスト可能にしたい場合は、あなたのコードをリファクタリングする必要があるコード
private void buttonEq_Click(object sender, EventArgs e)
{
number2 = int.Parse(textBox1.Text);
if (operation == "plus")
{
finRes = number1 + number2;
}
else if (operation == "minus")
{
finRes = number1 - number2;
}
else if (operation == "multiple")
{
finRes = number1 * number2;
}
else if (operation == "divide")
{
finRes = number1/number2;
}
else if (operation == "exp")
{
finRes = Math.Pow(number1, number2);
}
else if (operation == "fac")
{
int result = number1;
for (int i = (number1)-1; i > 0 ; i--)
{
result = result * i;
finRes = result;
}
}
else if (operation == "sqrt")
{
finRes = Math.Sqrt(number1);
}
textBox2.Text = finRes.ToString();
operation = "";
}
checkout mvvmパターン。 textBox2.Textにアクセスするために単体テストを書くことはできません。しかし、それをviewmodelのプロパティにバインドすると、そのユニットテストを確実に書くことができます – CarbineCoder
そのコードのほとんどは実際にはインターフェイスを必要としません。 2つの部分に分割するのはどうですか? UIコードは、UIとの間でデータをやりとりすることを処理し、次に、他のものが実際の作業を処理することができます。これにより、すべてのテキストボックスの内容を設定することなく、実際の作業セクションでさまざまなテストを行うことができます。 – MBentley
抽象的なあなた自身のクラスとユニットテストにコードを処理します。次に、フォームクラス内でそのクラスとそのメソッドを使用します。 – Brody