shared examples let factory bot 3 types of tests; - unit - request - system -- capybara when you have request, you have - methods; get put post delete - helper methods; response, params, body, headers It's all code. Writing tests is the first big project I am trying to build. To know how to develop a test suite to test my features. This is so that the features I write will endure through the many changes that take place. for example, when i wrote my first backpack app, destroy all tasks - I loved that I had a counter of how many tasks I destroyed. I also enjoyed that I had the ability to highlight important tasks. Somewhere along the way I lost that feature. If I had tests or a test suite covering that, I would have caught that and fixed it along with whatever other feature I was working on. Testing code involves tools, mentality, spectrum, and a methodology. Tools: - test runner - test helpers - test assertions Methodology: - Arrange - Act - Assert Spectrum or Pyramid of tests: - E2E - Integration / Snapshot - Unit Mentality: - Having an ability to write a failing test means you have the ability to see when and how this test is going to be run and which code it runs - Knowing that some tests are just for you to think through the code yourself.