--- layout: pattern title: Arrange/Act/Assert folder: arrange-act-assert permalink: /patterns/arrange-act-assert/ categories: Idiom tags: - Testing --- ## Also known as Given/When/Then ## Intent The Arrange/Act/Assert (AAA) is a pattern for organizing unit tests. It breaks tests down into three clear and distinct steps: 1. Arrange: Perform the setup and initialization required for the test. 2. Act: Take action(s) required for the test. 3. Assert: Verify the outcome(s) of the test. ## Applicability Use Arrange/Act/Assert pattern when * you need to structure your unit tests so they're easier to read, maintain, and enhance. ## Credits * [Arrange, Act, Assert: What is AAA Testing?](https://blog.ncrunch.net/post/arrange-act-assert-aaa-testing.aspx) * [Bill Wake: 3A – Arrange, Act, Assert](https://xp123.com/articles/3a-arrange-act-assert/) * [Martin Fowler: GivenWhenThen](https://martinfowler.com/bliki/GivenWhenThen.html)