gpt4 book ai didi

xunit - 为什么 xunit 不允许测试带有参数的方法?

转载 作者:行者123 更新时间:2023-12-04 00:03:11 38 4
gpt4 key购买 nike

我正在学习使用单元测试,我创建了一个项目,添加了 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 : Fact method UnitTestProject.Form1.test cannot have parameters Stack Trace: 於 Xunit.Sdk.FactCommand.Execute(Object testClass)
Xunit.Sdk.FixtureCommand.Execute(Object testClass)
Xunit.Sdk.BeforeAfterCommand.Execute(Object testClass)
Xunit.Sdk.LifetimeCommand.Execute(Object testClass)
Xunit.Sdk.ExceptionAndOutputCaptureCommand.Execute(Object testClass)



那么,如何使用参数测试方法/函数?

最佳答案

您也可以使用 [Theory]而不是 [Fact] .它将允许您创建具有不同参数的测试方法。
例如。

[Theory]
[InlineData(1, "22")]
[InlineData(-1, "23")]
[InlineData(0, "-25")]
public void test(int number1, string number2)
{
int result = number1 + Convert.ToInt32(number2);
Assert.IsType(Type.GetType("Int32"), result);
}

附言使用 xUnit 将测试方法公开会更好。

关于xunit - 为什么 xunit 不允许测试带有参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8163023/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com