Je suis en train de tester des contrôleurs API Web C # - chacun nécessite plusieurs paramètres pour s'initialiser. J'ai ce code dans chaque test pour le moment mais c'est très volumineux. Comment puis-je mettre ce code dans le [TestInitialize] afin qu'il s'exécute avant chaque test?
J'ai essayé ce qui suit, mais évidemment, il existe des méthodes hors test pour les méthodes de test.
[TestInitialize]
public void TestInitialize()
{
APIContext apicon = new APIContext();
xRepository xRep = new xRepository(apicon);
var controller = new relevantController(cRep);
controller.Request = new HttpRequestMessage();
controller.Configuration = new HttpConfiguration();
relevantFactoryModel update = new relevantFactoryModel();
}
Merci
Vous pouvez définir les variables dont vous avez besoin en tant que champs de la classe de test, puis les initialiser dans la méthode TestInitialize.
class Tests
{
// these are needed on every test
APIContext apicon;
XRepository xRep;
Controller controller;
RelevantFactoryModel update;
[TestInitialize]
public void TestInitialize()
{
apicon = new APIContext();
xRep = new xRepository(apicon);
controller = new relevantController(cRep);
controller.Request = new HttpRequestMessage();
controller.Configuration = new HttpConfiguration();
update = new relevantFactoryModel();
}
}
De cette façon, les champs sont accessibles à partir de chaque test