私は単位テストを使用することを学んでいます、私はプロジェクトを作成し、xunitの参照を追加します。 とコードを次なぜxunitはパラメータを持つメソッドをテストできないのですか?
namespace UnitTestProject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[Fact]
private void test(int number1, string number2)
{
int result = number1 + Convert.ToInt32(number2);
Assert.IsType(Type.GetType("Int32"), result);
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
私はxUnitのGUIツールを使用してテストを実行すると、それは言った:
UnitTestProject.Form1.test:System.InvalidOperationExceptionが:ファクト 方法UnitTestProject.Form1.testができません 於Xunit.Sdk.FactCommand.Execute(TestClassをオブジェクト)
Xunit.Sdk.FixtureCommand.Execute(TestClassをオブジェクト)
Xunit.Sdk.BeforeAfterCommand.Execute(TestClassをオブジェクト):パラメータスタックトレースを持っています Xunit.Sdk.LifetimeCommand.Execute(TestClassをオブジェクト)
Xunit.Sdk.ExceptionAndOutputCaptureCommand.Execute(TestClassをオブジェクト)
だから、どのように私は、パラメータを持つメソッド/機能をテストすることができますか?
ありがとう、しかし、私はランダムな値でInlineDataを設定することはできますか?あるいは、InlineDataはインラインメソッド/変数を受け入れますか? – Cheung
あなたはそうすることはできません。以下の汚れた例を見てください。 – Alina
@Shiba通常、テストではランダムな値を使うべきではありません。あなたの例の方法では、乱数が1つ失敗した場合、問題の原因となった数字が何であるか分かりません。テストを決定的に行い、予期せぬ、予想外の、極端な入力の範囲でフィードを作成してください。 – DaveShaw