GitXplorerGitXplorer
i

TDD_Rediscovered_ProgrammerTests

public
3 stars
2 forks
0 issues

Commits

List of commits on branch master.
Unverified
cb8a33db11a19864786d7ad0e1f8023b3cb6064b

move the readme

iiancooper committed 4 years ago
Unverified
1cc9630c95a908c71c72f87a7e59f8edde269730

Add a better README.md

iiancooper committed 4 years ago
Unverified
f6ffc41697c3eb26d6bd3fecaf9b0ab9b878e3dd

Fix test that causes one cell to live first pass

iiancooper committed 4 years ago
Unverified
96f82f057dd1d7d5a0102ff59cc17f0fffc57022

Fix issue with three vertical should produce three diagonal

iiancooper committed 4 years ago
Unverified
521a15625925241e4b32690173178947b6aca8fb

Clean up row and col vs size in tick

iiancooper committed 4 years ago
Unverified
c015fa43080535c86a1d7d9bcd0aed7a8d5aff63

Add edge case tests

iiancooper committed 4 years ago

README

The README file for this repository.

TDD Rediscovered - ProgrammerTests

What is this?

This is an implementation of Conway's Game of Life, used to support my course: TDD Rediscovered.

It is public to support students of that course reviewing the code used.

The Rules

The code was created as a kata, using the following rules:

  • We are writing Programmer Tests. A failing test tells us that the last edit to the source is the source of an issue

  • The prompt to write a test is a new requirement. We assume that we obtained these when elaborating the story with the customer.

  • When we discover that we need new collaborators by refactoring we ask: are they part of our public interface or an implementation detail. We don’t test implementation details

Branches

The master branch is the output of the original kata.

There are two branches:

  • Refactoring Steps: The commits here show various refactorings, which may be well advised (removing duplication) or ill-advised (intrdocuing a class hierachy). Their goal is to show that we can refactor details, without writing new tests around those details, if they are private.
  • Clean Architecture: This branch makes the code runnable. It seeks to demonstrate that the idea of Clean Architecure - adapaters, use cases, and entities - can be implemented straightforwardly, and let us separate the 'hard to test' concepts easily. Ultimately 'Game' here would be a good test target to drive TDD.