Si j'ai le code suivant:SetUp dans les classes dérivées avec NUnit?
[TestFixture]
public class MyBaseTest
{
protected ISessionManager _sessionManager;
[SetUp]
public void SetUp() { /* some code that initializes _sessionManager */ }
}
[TestFixture]
public class MyDerivedTest : MyBaseTest
{
IBlogRepository _repository;
[SetUp]
public void SetUp() { /* some code that initializes _repository */ }
[Test]
public void BlogRepository_TestGoesHere() { /* some tests */ }
}
... NUnit ne pas appeler la routine de base SetUp. C'est prévu, et je n'ai pas de problème avec lui-même. Je peux obtenir le SetUp dérivé d'appeler la configuration de la base première, comme ceci:
[TestFixture]
public class MyDerivedTest : MyBaseTest
{
IBlogRepository _repository;
[SetUp]
public new void SetUp()
{
base.SetUp();
/* some code that initializes _repository */
}
C'est laid. Si c'était un constructeur, je n'aurais pas à le faire.
je pourrais utiliser le modèle « méthode de modèle », et ont les éléments suivants:
public void MyBaseTest
{
abstract void SetUp();
[SetUp]
public void BaseSetUp()
{
/* base initialization */
SetUp(); // virtual call
}
}
Je ne suis pas particulièrement friand de ce fait, non plus.
Que faites-vous lorsque leurs classes de test ont besoin de SetUp et qu'elles sont dérivées d'une autre classe qui nécessite également SetUp?
Je sais. Je ne veux pas. –
Méthode partielle alors? Parce que le SetUp est décoré avec et attribut, je ne suis pas sûr qu'il y aurait trop de façons de le faire. –
Ooh. Je n'ai pas pensé à des méthodes partielles. Approche intéressante –