corbym/gogiven

Better test fluidity

Opened this issue · 0 comments

As a developer, I would prefer not to have to chain the given/when/then functions so that I can space the code out better.

Example:

Given(testing, clockParametersUnder(test)).
			When(func(capturedIO testdata.CapturedIO, givens testdata.InterestingGivens) {
			clock, err = berlinclock.Clock(test.time)
		}).
			Then(func(testingT base.TestingT, actual testdata.CapturedIO, givens testdata.InterestingGivens) {
			then.AssertThat(testing, err, is.Nil())
			then.AssertThat(testing, clock, is.
				EqualTo(test.expected).
				Reasonf("time incorrect for %s", test.time))
		})

should be more like this:

func TestMyTest(testing *testing.T) {
    Given(testing, clockParametersUnder(test))

    When(func(capturedIO testdata.CapturedIO, givens testdata.InterestingGivens) {
			clock, err = berlinclock.Clock(test.time)
		})

    Then(func(testingT base.TestingT, actual testdata.CapturedIO, givens testdata.InterestingGivens) {
			then.AssertThat(testing, err, is.Nil())
			then.AssertThat(testing, clock, is.
				EqualTo(test.expected).
				Reasonf("time incorrect for %s", test.time))
    })
}