improve: tests for asserting test names in subtests

pull/1423/head
Linus Barth 2023-10-17 16:36:33 +02:00 committed by Olivier Mengué
parent 130d340262
commit 65318c364a
1 changed files with 13 additions and 4 deletions

View File

@ -162,6 +162,9 @@ type SuiteTester struct {
SetupSubTestRunCount int SetupSubTestRunCount int
TearDownSubTestRunCount int TearDownSubTestRunCount int
SetupSubTestNames []string
TearDownSubTestNames []string
SuiteNameBefore []string SuiteNameBefore []string
TestNameBefore []string TestNameBefore []string
@ -242,8 +245,8 @@ func (suite *SuiteTester) TestSubtest() {
for _, t := range []struct { for _, t := range []struct {
testName string testName string
}{ }{
{"first-subtest"}, {"first"},
{"second-subtest"}, {"second"},
} { } {
suiteT := suite.T() suiteT := suite.T()
suite.Run(t.testName, func() { suite.Run(t.testName, func() {
@ -258,13 +261,13 @@ func (suite *SuiteTester) TestSubtest() {
} }
func (suite *SuiteTester) TearDownSubTest() { func (suite *SuiteTester) TearDownSubTest() {
suite.TearDownSubTestNames = append(suite.TearDownSubTestNames, suite.T().Name())
suite.TearDownSubTestRunCount++ suite.TearDownSubTestRunCount++
suite.Contains(suite.T().Name(), "subtest", "We should get the *testing.T for the test that is to be torn down")
} }
func (suite *SuiteTester) SetupSubTest() { func (suite *SuiteTester) SetupSubTest() {
suite.SetupSubTestNames = append(suite.SetupSubTestNames, suite.T().Name())
suite.SetupSubTestRunCount++ suite.SetupSubTestRunCount++
suite.Contains(suite.T().Name(), "subtest", "We should get the *testing.T for the test that is to be set up")
} }
type SuiteSkipTester struct { type SuiteSkipTester struct {
@ -321,6 +324,12 @@ func TestRunSuite(t *testing.T) {
assert.Contains(t, suiteTester.TestNameBefore, "TestSkip") assert.Contains(t, suiteTester.TestNameBefore, "TestSkip")
assert.Contains(t, suiteTester.TestNameBefore, "TestSubtest") assert.Contains(t, suiteTester.TestNameBefore, "TestSubtest")
assert.Contains(t, suiteTester.SetupSubTestNames, "TestRunSuite/TestSubtest/first")
assert.Contains(t, suiteTester.SetupSubTestNames, "TestRunSuite/TestSubtest/second")
assert.Contains(t, suiteTester.TearDownSubTestNames, "TestRunSuite/TestSubtest/first")
assert.Contains(t, suiteTester.TearDownSubTestNames, "TestRunSuite/TestSubtest/second")
for _, suiteName := range suiteTester.SuiteNameAfter { for _, suiteName := range suiteTester.SuiteNameAfter {
assert.Equal(t, "SuiteTester", suiteName) assert.Equal(t, "SuiteTester", suiteName)
} }