26
WHY FAKE IT WHEN YOU CAN FAKE IT EASY

Why just fake it

Embed Size (px)

DESCRIPTION

An introduction to mocking frameworks and using FakeItEasy to help make .Net developers write better code through better unit tests. The goal of this session is understand unit testing basics, using fakes and then leveraging a mocking framework to get the most out of unit testing. This session is geared toward the novice unit tester and framework addicts.

Citation preview

Page 1: Why just fake it

WHY FAKE IT

WHEN YOU CAN FAKE IT EASY

Page 2: Why just fake it

• Husband

• Father

• Software developer for Meta Payment Systems

• Home brewer

• Stat guy

Dan Stroh

Page 3: Why just fake it

AGENDA

• Goals

• Anatomy of a Unit Test

• Pillars of Unit Testing

• Unit testing Development Practices

• Inversion of control

• Fakes, Mocks, Stubs

• Mocking Frameworks

• FakeItEasy

• Recap

• Questions

Page 4: Why just fake it

GOALS

• Write good unit tests

• Know what a good unit test looks like

• Use a mocking framework

Page 5: Why just fake it

ANATOMY OF A UNIT TEST

Page 6: Why just fake it

AAA

Page 7: Why just fake it

ARRANGE

ACT

ASSERT

Page 8: Why just fake it

PILLARS OF UNIT TESTING

Page 9: Why just fake it

UNIT TESTING DEVELOPMENT PRACTICES

Page 10: Why just fake it

TAD

TEST AFTER DEVELOPMENT

Page 11: Why just fake it

TDD

TEST DRIVEN DEVELOPMENT

Page 12: Why just fake it

BDD

BEHAVIOR DRIVEN DEVELOPMENT

Page 13: Why just fake it

FAKES, MOCKS, AND STUBS

Page 14: Why just fake it

INVERSION OF CONTROL

Page 15: Why just fake it

CONSTRUCTOR INJECTION

Page 16: Why just fake it

PROPERTY INJECTION

Page 17: Why just fake it

ARGUMENT INJECTION

Page 18: Why just fake it

MOCKING FRAMEWORKS

FakeItEasy (nuget) github.com/fakeiteasy

Rhino Mocks (nuget) hibernatingrhinos.com/oss/rhino-mocks

Moq (nuget) github.com/Moq

Microsoft Fakes msdn.microsoft.com/en-us/library/hh549175%28v=vs.110%29.aspx

TypeMocks typemock.com

JustMock (nuget) telerik.com/products/mocking.aspx

Nmock (nuget) nmock3.codeplex.com

Nsubstitute (nuget) nsubstitute.github.io/

EasyMock .Net sourceforge.net/projects/easymocknet/

Page 19: Why just fake it

FAKEITEASY

Page 20: Why just fake it

RECAP

Page 21: Why just fake it

WRITE GOOD UNIT TESTS

Page 22: Why just fake it

KNOW WHAT A GOOD UNIT TEST LOOKS LIKE

Page 23: Why just fake it

USE A MOCKING FRAMEWORK

Page 24: Why just fake it

QUESTIONS

Page 26: Why just fake it

THANK YOU