Sono nuovo di Moq e test delle unità. Ho fatto una prova di unità e questo è il seguente codice:Interfacce di test unità con Moq
private Mock<IServiceAdapter> repository;
[TestInitialize]
public void Initialize()
{
repository= new Mock<IServiceAdapter>();
}
[TestMethod()]
public void SaveTest()
{
//Setup
string Name = "Name1";
string Type = "1";
string parentID = null;
repository.Setup(x => x.Save(Name , Type, parentID)).Returns("Success").Verifiable();
//Do
var result = repository.Object.Save(Name , Type, parentID);
//Assert
repository.Verify();
}
Il mio problema è che il test restituisce sempre la stringa che ho messo nel parametro restituisce, in altre parole, sarà sempre tornare "successo "o qualunque cosa scrivo al suo posto. Immagino che non è giusto perché questo non è il vero comportamento del servizio. Qualcuno sa come posso rispecchiare il comportamento reale del servizio "Salva" che sto provando a testare? Quindi, diciamo, se la stringa di restituzione è diversa dal metodo di servizio, il test dovrebbe fallire.
cura
L'interfaccia ServiceAdapter il suo solo un wrapper per un servizio Web che io chiamo come un servizio REST. È un progetto Web Forms.
che sto facendo qualcosa di simile in questo post
Devo creare qualcosa di simile a un FakeController con Dependency Injection per farlo funzionare?
Mi manca qualcosa qui. Non ho un controller (sono moduli web). Metterò ulteriori informazioni nella domanda. –
@MorganSoren controller è stato solo un esempio. Potrebbe essere qualsiasi altra classe che utilizza il tuo adattatore di servizio. Penso che i moduli web non siano molto testabili come lo sono, di solito è un pattern MVP utilizzato per creare applicazioni di moduli web testabili. –
@MorganSoren qui è una domanda su [unit-testing web forms] (http://programmers.stackexchange.com/questions/116089/is-is-possible-to-unit-test-a-web-forms-site) –