feat: data-driven.

This commit is contained in:
徐聪
2022-01-04 14:24:19 +08:00
parent 801fc1048a
commit c200882e6a
+14 -19
View File
@@ -621,44 +621,39 @@ func TestFindallVariables(t *testing.T) {
func TestParseParameters(t *testing.T) { func TestParseParameters(t *testing.T) {
testData := []struct { testData := []struct {
rawVars map[string]interface{} rawVars map[string]interface{}
expectVars []map[string]interface{} expectLength int
}{ }{
{ {
map[string]interface{}{ map[string]interface{}{
"username-password": "${parameterize(examples/account.csv)}", "username-password": "${parameterize(examples/account.csv)}",
"user_agent": []interface{}{"IOS/10.1", "IOS/10.2"}}, "user_agent": []interface{}{"IOS/10.1", "IOS/10.2"}},
[]map[string]interface{}{ 6,
{"username": "test1", "password": "111111", "user_agent": "IOS/10.1"},
{"username": "test1", "password": "111111", "user_agent": "IOS/10.2"},
{"username": "test2", "password": "222222", "user_agent": "IOS/10.1"},
{"username": "test2", "password": "222222", "user_agent": "IOS/10.2"},
{"username": "test3", "password": "333333", "user_agent": "IOS/10.1"},
{"username": "test3", "password": "333333", "user_agent": "IOS/10.2"}},
}, },
{ {
map[string]interface{}{ map[string]interface{}{
"username-password": [][]interface{}{{"test1", "111111"}, {"test2", "222222"}, {"test3", "333333"}}, "username-password": [][]interface{}{{"test1", "111111"}, {"test2", "222222"}, {"test3", "333333"}},
"user_agent": []interface{}{"IOS/10.1", "IOS/10.2"}, "user_agent": []interface{}{"IOS/10.1", "IOS/10.2"},
"app_version": []interface{}{0.3}}, "app_version": []interface{}{0.3}},
[]map[string]interface{}{ 6,
{"username": "test1", "password": "111111", "user_agent": "IOS/10.1", "app_version": 0.3},
{"username": "test1", "password": "111111", "user_agent": "IOS/10.2", "app_version": 0.3},
{"username": "test2", "password": "222222", "user_agent": "IOS/10.1", "app_version": 0.3},
{"username": "test2", "password": "222222", "user_agent": "IOS/10.2", "app_version": 0.3},
{"username": "test3", "password": "333333", "user_agent": "IOS/10.1", "app_version": 0.3},
{"username": "test3", "password": "333333", "user_agent": "IOS/10.2", "app_version": 0.3}},
}, },
{ {
map[string]interface{}{}, nil, map[string]interface{}{
"username-password": [][]interface{}{{"test1", "111111"}, {"test2", "222222"}, {"test3", "333333"}},
"user_agent": []interface{}{"IOS/10.1", "IOS/10.2"},
"app_version": []interface{}{0.3, 0.4, 0.5}},
18,
}, },
{ {
nil, nil, map[string]interface{}{}, 0,
},
{
nil, 0,
}, },
} }
for _, data := range testData { for _, data := range testData {
value, _ := parseParameters(data.rawVars, map[string]interface{}{}) value, _ := parseParameters(data.rawVars, map[string]interface{}{})
if !assert.Equal(t, data.expectVars, value) { if !assert.Len(t, value, data.expectLength) {
t.Fail() t.Fail()
} }
} }