Tôi đang viết các bài kiểm tra đơn vị với NUnit và plugin TestDriven.NET. Tôi muốn cung cấp các tham số cho phương pháp thử nghiệm như sau:Làm cách nào để chỉ định các tham số phương pháp thử nghiệm với TestDriven.NET?
[TestFixture]
public class MyTests
{
[Test]
public void TestLogin(string userName, string password)
{
// ...
}
...
}
Như bạn có thể thấy, các thông số này là dữ liệu riêng tư, vì vậy tôi không muốn mã hóa chúng hoặc đặt chúng vào tệp. Thực ra tôi không muốn viết chúng ở bất cứ đâu, tôi muốn được nhắc mỗi khi tôi chạy thử nghiệm.
Khi tôi cố gắng chạy thử nghiệm này, tôi nhận được thông báo sau trong cửa sổ đầu ra:
TestCase 'MyProject.MyTests.TestLogin' không được thực hiện: Không có đối số được cung cấp
Vì vậy, câu hỏi của tôi là, làm cách nào để cung cấp các thông số này? Tôi mong đợi TestDriven.NET để hiển thị một dấu nhắc để tôi có thể nhập các giá trị, nhưng nó không ...
Xin lỗi nếu câu hỏi của tôi có vẻ ngu ngốc, câu trả lời có lẽ rất đơn giản, nhưng tôi không thể tìm thấy bất cứ điều gì hữu ích trên Google ...
EDIT: tôi chỉ tìm thấy một cách để làm điều đó, nhưng đó là một thủ thuật bẩn ...
[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 }
};
}
}
tôi vẫn quan tâm đến một giải pháp tốt hơn .. .
Tôi nghĩ rằng nếu bạn làm điều này bạn sẽ gặp khó khăn khi chạy thử nghiệm một cách tự động trong một môi trường (Itegration Continuous) CI. – 7wp
Bạn hoàn toàn đúng. Tuy nhiên, đó là một dự án cộng đồng nhỏ, vì vậy CI không thực sự là một vấn đề, ít nhất là bây giờ. –