Sono nuovo per usare le strutture di derisione e ho alcune domande sulle cose su cui non sono chiaro. Sto usando Rhinomocks per generare oggetti finti nei miei test di unità. Capisco che i mock possono essere creati per verificare le interazioni tra i metodi e registrano le interazioni, ecc. E gli stub ti permettono di impostare i dati e le entità richieste dal test ma non verificare le aspettative sugli stub.
Guardando i recenti test unitari che ho creato, sembra che stia creando letteralmente mock allo scopo di eseguire lo stub e consentire l'impostazione dei dati. Si tratta di un uso corretto di mock o non è corretto se in realtà non stai chiamando per verificarli?
Ad esempio:
user = MockRepository.GenerateMock<User>();
user.Stub(x => x.Id = Guid.NewGuid());
user.Stub(x => x.Name = "User1");
Nel codice precedente ho generato un nuovo oggetto fittizio utente, ma io uso un simulato in modo da poter stubare le proprietà dell'utente perché in alcuni casi se le proprietà non hanno un setter
e ho bisogno di impostarle sembra che l'unico modo sia di stubare i valori delle proprietà. È un uso corretto di stubbing e mocking?
Inoltre, non sono completamente chiaro su quale sia la differenza tra le seguenti righe:
user.Stub(x => x.Id).Return(new Guid());
user.Stub(x => x.Id = Guid.NewGuid());