Diciamo che ho un progetto che è una libreria di classi. Ho una classe in quella libreria e questa classe ha alcuni metodi che sono usati solo all'interno della classe. In questo modo:Test delle unità e ambito degli oggetti: come testare metodi privati / interni ecc.?
public class MyClass
{
public void MyPublicMethod
{
int k
// do something ...
int z = MyInternalMethod(k);
// do something else ...
}
internal int MyInternalMethod(int i)
{
// do something ...
}
}
Ora voglio scrivere test di unità per questi metodi. Vorrei creare un progetto di "unit test", fare riferimento al NUnit da esso e scrivere qualcosa del genere
[TestFixture]
public class UnitTests
{
private MyClass myClass;
[SetUp]
public void SetupTest
{
myClass = new MyClass();
}
[Test]
public void TestMyInternalMethod
{
int z = 100;
int k = myClass.MyInternalMethod(z); //CAN NOT DO THIS!
Assert.AreEqual(k, 100000);
}
[TearDown]
public void TearDown
{
myClass = null;
}
}
Naturalmente, non posso fare questo, a causa della portata MyInternalMethod. Quale sarebbe il modo corretto di gestire questa situazione?
Questa è la risposta che ha funzionato meglio per la mia situazione e ha richiesto solo l'aggiunta di una linea, una vera gemma. Qualcuno lo ha downvoted senza indicarne la ragione ... – Evgeny
Sono curioso anche per il downvote. Ci sono degli svantaggi nel testare internals in questo modo rispetto ad un altro? –
il link è morto –