我正在使用NUnit和TestDriven.NET插件编写单元测试。我想给一个测试方法提供参数,如下所示:
[TestFixture]
public class MyTests
{
[Test]
public void TestLogin(string userName, string password)
{
// ...
}
...
}
正如您所见,这些参数是私有数据,因此我不想将它们硬编码或放在文件中。实际上,我希望在每次运行测试时都会提示我,而不需要任何地方编写它们。当我尝试运行此测试时,输出窗口显示以下消息:
“未执行TestCase 'MyProject.MyTests.TestLogin':未提供参数”
因此,我的问题是如何提供这些参数?我期望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 }
};
}
}
我仍然对更好的解决方案感兴趣...