MOQ Cheat Sheet

A Programming › Programming cheat sheet in English by GregFinzer

MOQ Mocking Library

25,393 views 3,787 downloads 7 Apr 2017 History
3.7 avg · 0 ratings

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"));

Badges

Nice Cheat Sheet Good Cheat Sheet

Comments

No comments yet.

Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.