Cos'è NSubstitute? Come si installa in un progetto Visual Studio?
Cos'è NSubstitute
Il nostro scopo è usare il framework NSubstitute in un nostro dato progetto C# realizzato sotto Microsoft Visual Studio (tutti i test sono stati fatti con Visual Studio 2013).
Cos'è NSubstitute?
NSubstitute è un mock framework, ovvero è un framework che vi permette in maniera più agevole di realizzare degli UnitTest senza dover necessariamente chiamare/usare una data libreria. Questo ci aiuta, ad esempio, se noi vogliamo testare alcune funzionalità verso un DB senza accedere realmente al DB stesso.
Come si installa
L'installazione è molto semplice: click destro del mouse sulla root del progetto, si sceglie la voce "Manage NuGet Packages...", si cerca tra i pacchetti NSubstitute e quindi lo si installa.
Un primo test
var dcs_mock = Substitute.For<IDCS>();
Result res_mock = new Result();
res_mock.Cod = (int)ResultCod.OK;
dcs_mock.GetById(1).Returns(res_mock);
Result res = dcs_mock.GetById(1);
Assert.IsTrue(res.Cod == (int)ResultCod.OK);
Una sostituzione parziale
Vediamo come fare una sostituzione non di tutta una classe ma solo di un metodo:
[TestMethod]
public void TestMyTest()
{
try
{ //Si fa il mock della classe e non dell'interfaccia
var ws_mock = Substitute.ForPartsOf<MyClass>();
//si fa il mock solo del metodo che interessa
ws_mock.WhenForAnyArgs(x => x.MyMethodToMock("", 0)).DoNotCallBase();
ws_mock.MyMethod_NOT_TO_Mock(....my params...);
Assert.IsTrue(true);
}
catch (Exception e)
{
Assert.IsTrue(false);
}
}
Link
La pagina ufficiale è: nsubstitute.github.io
Buon lavoro!