testify/suite/suite_order_test.go

50 lines
900 B
Go

package suite
import (
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
type CallOrderSuite struct {
Suite
callOrder []string
}
func (s *CallOrderSuite) call(method string) {
// s.Mutex.Lock()
// defer s.Mutex.Unlock()
s.callOrder = append(s.callOrder, method)
}
func TestSuiteCallOrder(t *testing.T) {
Run(t, new(CallOrderSuite))
}
func (s *CallOrderSuite) SetupSuite() {
s.call("SetupSuite")
}
func (s *CallOrderSuite) TearDownSuite() {
s.call("TearDownSuite")
assert.Equal(s.T(), "SetupSuite;SetupTest;Test A;TearDownTest;TearDownSuite", strings.Join(s.callOrder, ";"))
}
func (s *CallOrderSuite) SetupTest() {
s.T().Parallel()
s.call("SetupTest")
}
func (s *CallOrderSuite) TearDownTest() {
s.call("TearDownTest")
}
func (s *CallOrderSuite) Test_A() {
s.call("Test A")
}
//func (s *CallOrderSuite) Test_B() {
// time.Sleep(time.Second)
// s.call("Test B")
//}