Tôi đang học cách sử dụng kiểm tra đơn vị, tôi tạo một dự án, thêm tham chiếu xunit. Và mã sau:tại sao xunit không cho phép thử nghiệm một phương thức với các tham số?
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)
{
}
}
}
Khi tôi chạy thử nghiệm sử dụng công cụ xUnit gui, nó nói:
UnitTestProject.Form1.test: System.InvalidOperationException: Fact phương pháp UnitTestProject.Form1.test không thể có các thông số 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)
Vì vậy, làm thế nào tôi có thể kiểm tra các phương pháp/chức năng với các thông số?
cảm ơn, nhưng tôi có thể thiết lập các InlineData trong giá trị ngẫu nhiên? Hay tốt hơn để nói, InlineData chấp nhận phương thức/biến nội tuyến? – Cheung
Bạn có thể tại sao không. Xem một ví dụ bẩn dưới đây. – Alina
@Shiba nói chung bạn không nên sử dụng các giá trị ngẫu nhiên trong các thử nghiệm của mình. Trong phương pháp ví dụ của bạn nếu một số ngẫu nhiên không thành công, bạn sẽ không có ý tưởng về những con số gây ra vấn đề. Cố gắng làm cho các xét nghiệm của bạn xác định, và nạp vào một loạt các đầu vào mong đợi, bất ngờ và cực đoan. – DaveShaw