Lecture 12
Recap: Terminology and Principles Related to Mocking Frameworks
1. Mocking:
o Mock Objects: Simulated objects that mimic the behavior of real
objects in controlled ways, used to test the interactions of a unit
with its dependencies.
o Purpose: Helps isolate the unit under test by simulating the
behavior of its dependencies, ensuring the test focuses solely on
the unit itself.
2. Why Use Mocking Frameworks?
o Efficiency: Hand-coding stubs and mocks is time-consuming and
prone to errors. Mocking frameworks automate the creation of fake
objects, making tests easier to write, read, and maintain.
o Popular Frameworks: MOQ, FakeItEasy, NSubstitute. NSubstitute
is highlighted for its focus on test readability and familiar syntax.
Interaction Testing
1. Types of Testing in Unit Tests:
o Value-Based Testing: Validates the return values of a method.
o State-Based Testing: Ensures that the internal state of the unit
under test changes as expected.
o Interaction Testing: Verifies that the unit under test interacts
correctly with other objects by calling their methods.
2. When to Use Interaction Testing:
o Interaction testing is essential when the primary outcome of a unit
of work is calling a method on another object. Mock objects help
verify that these interactions occur as expected.