Cheatography
https://cheatography.com
Normal Mock, Setup, Verify
//Arrange
//Creating a Mock
var mockRepository = new Mock<IInvoiceRepository>();
//Perform method setup
mockRepository.Setup(o => o.Save(It.IsAny<Invoice>())).Returns(true);
//Pass in the mock with the Object property
var invoiceService = new InvoiceService(mockRepository.Object);
//Act
InvoiceService.Create(new Invoice());
//Assert
mockRepository.VerifyAll();
|
Verify the parameters for a call
//Arrange
var mockCalcShipping = new Mock<ICalcShipping>();
Invoice invoice = new Invoice();
mockCalcShipping.Setup(o => o.CalcShipping(It.IsAny<string>(), It.IsAny<decimal>())).Returns(5.95M);
//Act
mockCalcShipping.CalcShipping(invoice.ZipCode, invoice.Weight);
//Assert
mockCalcShipping.Verify(x => x.CalcShipping(
It.Is<string>(fn=>fn.Equals(invoice.ZipCode, StringComparison.InvariantCultureIgnoreCase)),
It.Is<decimal>(fn=>fn.Equals(Invoice.Weight)))));
|
Stubbing Properties
//Stub property
mockRepository.SetupProperty(o => o.ConnectionString, "Test");
//Stub multiple properties
mockRepository.SetupAllProperties();
mockRepository.Object.ConnectionString = "Test";
|
Verify Times a Method was Called
mockInvoiceRepository.Verify(x=>x.Save(It.IsAny<Invoice>()), Times.Once());
|
Verify Getter Was Called
mockRepository.VerifyGet(x=>x.ConnectionString);
|
Verify Setter Was Called
mockRepository.VerifySet(x=>x.ConnectionString = It.IsAny<string>());
|
Throwing Exceptions
mockRepository.Setup(x => x.Save(It.IsAny<Invoice>())).Throws<ChangedByAnotherUserException>();
|
Mock Events
mockRepository.Raise(x=>x.NotifySalesTeam += null, new NotifySalesTeamEventArgs("jim"));
|
|
Created By
www.kellermansoftware.com
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by GregFinzer