NSubstitute: Getting started
NSubstitute: Getting started

MICROSOFT VISUAL STUDIO: Uso di NSubstitute

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!

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.