gpt4 book ai didi

c# - 如何使用 TestDriven.NET 指定测试方法参数?

转载 作者:行者123 更新时间:2023-11-28 19:41:43 26 4
gpt4 key购买 nike

我正在使用 NUnit 和 TestDriven.NET 插件编写单元测试。我想为这样的测试方法提供参数:

[TestFixture]
public class MyTests
{
[Test]
public void TestLogin(string userName, string password)
{
// ...
}

...
}

如您所见,这些参数是私有(private)数据,所以我不想对它们进行硬编码或将它们放在文件中。实际上我不想将它们写在任何地方,我希望每次运行测试时都能得到提示。

当我尝试运行此测试时,我在输出窗口中收到以下消息:

TestCase 'MyProject.MyTests.TestLogin' not executed: No arguments were provided

所以我的问题是,如何提供这些参数?我希望 TestDriven.NET 显示提示以便我可以输入值,但它没有...

抱歉,如果我的问题看起来很愚蠢,答案可能很简单,但我在 Google 上找不到任何有用的东西...


编辑:我刚刚找到了一种方法,但这是一个肮脏的把戏......

    [Test, TestCaseSource("PromptCredentials")]
public void TestLogin(string userName, string password)
{
// ...
}

static object[] PromptCredentials
{
get
{
string userName = Interaction.InputBox("Enter user name", "Test parameters", "", -1, -1);
string password = Interaction.InputBox("Enter password", "Test parameters", "", -1, -1);
return new object[]
{
new object[] { userName, password }
};
}
}

我仍然对更好的解决方案感兴趣...

最佳答案

使用 TestCase属性。

[TestCase("User1", "")]
[TestCase("", "Pass123")]
[TestCase("xxxxxx", "xxxxxx")]
public void TestLogin(string userName, string password)
{
// ...
}

关于c# - 如何使用 TestDriven.NET 指定测试方法参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1382313/

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