diff --git a/suite/suite.go b/suite/suite.go index eac6909b4..e78922594 100644 --- a/suite/suite.go +++ b/suite/suite.go @@ -58,7 +58,7 @@ func (suite *Suite) Require() *require.Assertions { suite.mu.Lock() defer suite.mu.Unlock() if suite.require == nil { - suite.require = require.New(suite.T()) + panic("Looks like the suite was not initialised properly. Make sure you are calling 'suite.Run'") } return suite.require } @@ -72,7 +72,7 @@ func (suite *Suite) Assert() *assert.Assertions { suite.mu.Lock() defer suite.mu.Unlock() if suite.Assertions == nil { - suite.Assertions = assert.New(suite.T()) + panic("Looks like the suite was not initialised properly. Make sure you are calling 'suite.Run'") } return suite.Assertions } diff --git a/suite/suite_test.go b/suite/suite_test.go index 292dc298c..b31eb3596 100644 --- a/suite/suite_test.go +++ b/suite/suite_test.go @@ -692,3 +692,27 @@ func TestSubtestPanic(t *testing.T) { assert.True(t, suite.inTearDownTest) assert.True(t, suite.inTearDownSuite) } + +type unInitialisedSuite struct { + Suite +} + +// TestUnInitialisedSuites asserts the behaviour of the suite methods when the +// suite is not initialised +func TestUnInitialisedSuites(t *testing.T) { + t.Run("should panic on Require", func(t *testing.T) { + suite := new(unInitialisedSuite) + + assert.Panics(t, func() { + suite.Require().True(true) + }) + }) + + t.Run("should panic on Assert", func(t *testing.T) { + suite := new(unInitialisedSuite) + + assert.Panics(t, func() { + suite.Assert().True(true) + }) + }) +}