A pattern for structuring unit tests, where tests are broken up into 3 sections:
- Arrange: where you prepare any fixtures and setup the test.
- Act: usually a single method call which calls the system under test.
- Assert: the final assertions which are run after act.
The system under test is always stored in a variable called
Khorikov writes, by conforming to a standard like this, anyone can easily read and understand a test reducing maintenance cost.
Khorikov (2020) (pg. 42-43)
def test_datestring_is_formatted(): # Arrange date_time_instance = datetime.datetime(2008, 1, 2) sut = DateFormat(date_time_instance) # Act result = sut.format() # Assert assert result == "2008-1-2"
Similar to the Given-When-Then pattern.
Vladimir Khorikov. Unit Testing: Principles, Practices, and Patterns. Manning, Shelter Island, NY, 2020. ISBN 978-1-61729-627-7. ↩