Test & Code

10: Test Case Design using Given-When-Then from BDD


Listen Later

Given-When-Then is borrowed from BDD and is my favorite structure for test case design.

It doesn’t matter if you are using pytest, unittest, nose, or something completely different, this episode will help you write better tests.

  • The Given-When-Then structure for test method/function development.
  • How and why to utilize fixtures for your given or precondition code.
  • Similarities with other structure discriptions.
    • Setup-Test-Teardown
    • Setup-Excercise-Verify-Teardown.
    • Arrange-Act-Assert
    • Preconditions-Trigger-Postconditions.
    • Benefits
      • Communicate the purpose of your test more clearly
      • Focus your thinking while writing the test
      • Make test writing faster
      • Make it easier to re-use parts of your test
      • Highlight the assumptions you are making about the test preconditions
      • Highlight what outcomes you are expecting and testing against.
      • Links discussed in the show:

        • Mechanics of pytest, unittest, nose
        • unittest fixture reference
        • nose fixture reference
        • pytest fixtures (series of posts starting here)
        • pytest style fixtures
        • pytest parameterized fixtures
        • Support Test & Code - Software Testing, Development, Python

          ...more
          View all episodesView all episodes
          Download on the App Store

          Test & CodeBy Brian Okken

          • 4.7
          • 4.7
          • 4.7
          • 4.7
          • 4.7

          4.7

          70 ratings


          More shows like Test & Code

          View all
          Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

          Software Engineering Radio - the podcast for professional software developers

          272 Listeners

          The Changelog: Software Development, Open Source by Changelog Media

          The Changelog: Software Development, Open Source

          283 Listeners

          Thoughtworks Technology Podcast by Thoughtworks

          Thoughtworks Technology Podcast

          40 Listeners

          Data Skeptic by Kyle Polich

          Data Skeptic

          482 Listeners

          Talk Python To Me by Michael Kennedy

          Talk Python To Me

          593 Listeners

          Software Engineering Daily by Software Engineering Daily

          Software Engineering Daily

          624 Listeners

          Soft Skills Engineering by Jamison Dance and Dave Smith

          Soft Skills Engineering

          269 Listeners

          Python Bytes by Michael Kennedy and Brian Okken

          Python Bytes

          213 Listeners

          Data Engineering Podcast by Tobias Macey

          Data Engineering Podcast

          142 Listeners

          Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

          Syntax - Tasty Web Development Treats

          982 Listeners

          Practical AI by Practical AI LLC

          Practical AI

          189 Listeners

          The Stack Overflow Podcast by The Stack Overflow Podcast

          The Stack Overflow Podcast

          63 Listeners

          The Real Python Podcast by Real Python

          The Real Python Podcast

          140 Listeners

          Oxide and Friends by Oxide Computer Company

          Oxide and Friends

          47 Listeners

          The Pragmatic Engineer by Gergely Orosz

          The Pragmatic Engineer

          52 Listeners