Estoy escribiendo pruebas unitarias con NUnit y el plugin TestDriven.NET. Me gustaría proporcionar parámetros a un método de prueba como esta:¿Cómo especifico los parámetros del método de prueba con TestDriven.NET?
[TestFixture]
public class MyTests
{
[Test]
public void TestLogin(string userName, string password)
{
// ...
}
...
}
Como se puede ver, estos parámetros son información privada, así que no quiero se codifican o ponerlos en un archivo. En realidad, no quiero escribirlos en cualquier parte, quiero que se me pregunte cada vez que ejecuto la prueba.
Cuando trato de ejecutar esta prueba, me sale el siguiente mensaje en la ventana de salida:
TestCase 'MyProject.MyTests.TestLogin' no ejecutadas: No se proporcionaron argumentos
Así mi pregunta es, ¿cómo proporciono estos parámetros? Esperaba que TestDriven.NET mostrara un mensaje para poder ingresar los valores, pero no ...
Disculpa si mi pregunta parece estúpida, la respuesta es probablemente muy simple, pero no pude encontrar nada útil en Google ...
EDIT: Acabo de encontrar una manera de hacerlo, pero es un truco sucio ...
[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 }
};
}
}
todavía estoy interesado en una solución mejor ..
Creo que si usted hace esto usted tendrá problemas para ejecutar las pruebas de forma automática en un entorno de CI (continua Itegration). – 7wp
Tienes toda la razón. Sin embargo, es un proyecto comunitario pequeño, por lo que CI no es realmente un problema, al menos por ahora. –