feat: support nested testcase in teststep

This commit is contained in:
debugtalk
2021-09-20 10:59:37 +08:00
parent f4874c525f
commit c29f85bc64
3 changed files with 31 additions and 0 deletions

View File

@@ -50,6 +50,7 @@ type TValidator struct {
type TStep struct {
Name string `json:"name"`
Request *TRequest `json:"request"`
TestCase *TestCase `json:"testcase"`
Variables Variables `json:"variables"`
SetupHooks []string `json:"setup_hooks"`
TeardownHooks []string `json:"teardown_hooks"`

View File

@@ -21,6 +21,7 @@ func TestHttpRunner(t *testing.T) {
Validate().
AssertEqual("status_code", 200, "check status code").
AssertEqual("body.\"user-agent\"", "python-requests", "check User-Agent"),
RunTestCase("TestCase3").WithVariables(Variables{"var1": "value1"}),
},
}
testcase2 := &TestCase{

29
testcase.go Normal file
View File

@@ -0,0 +1,29 @@
package httpboomer
func RunTestCase(name string) *TestCase {
return &TestCase{
Config: TConfig{
Name: name,
},
}
}
func (tc *TestCase) WithVariables(variables Variables) *TestCase {
tc.Config.Variables = variables
return tc
}
func (tc *TestCase) ToStruct() *TStep {
return &TStep{
TestCase: tc,
}
}
func (tc *TestCase) Run() error {
for _, step := range tc.TestSteps {
if err := step.Run(); err != nil {
return err
}
}
return nil
}