Sto lavorando a questo progetto WebAPI e ho bisogno di creare unit test per questo. La base del progetto è stata creata utilizzando VS 2010, quindi è stato aggiunto un modulo WebApi.C# WebApi Unità di controllo e controller di derisione
Il funzionamento del controller è un po 'come mettere alla prova/beffarsi. Sto usando xUnit e Moq, ma non è assolutamente necessario attenersi a questi due.
L'applicazione utilizza oggetti specifici a che fare con l'accesso al database, in modo da avere il controllerObject e la sua contructor richiede l'DataAccessObject
Sto avendo problemi con beffarda la coppia di controllo/DataAccess. Il primo test che sto cercando di eseguire è GetAllFromDataBase, ma non ho davvero un indizio su come farlo.
EDIT:
ho fatto quello che Cuong Le mi ha detto e l'intero si sta muovendo ora, ho davvero apreciate esso. Ma mi sono imbattuto in un altro problema. Per accedere all'API, esiste una coppia nome utente/password e il mio controller utilizza Thread.CurrentPrincipal.Identity.Name; in questo momento avrei bisogno di impostare questo valore affinché funzioni completamente, credo.
Anche il valoreServiceMock.Setup (service => service.GetValues ()) . Restituisce (nuovo [] {"valore1", "valore2"});
non sembra funzionare. come il codice tenta di raggiungere il database e non ottiene nulla dal momento che non può ottenere un nome utente valido per cercare
Si consiglia di non prendere in giro il controller, si dovrebbe prendere in giro il servizi di cui il controller necessita. Se stavi prendendo in giro il controller, non avresti testato il controller. Questo è il punto. Dai un'occhiata a questo post: http://www.peterprovost.org//blog/2012/06/16/unit-testing-asp-dot-net-web-api/ – tugberk
Hai controllato di passare l'oggetto mock via costruttore come questo: var controller = new ValuesController (valueServiceMock.Object); –