package app import ( "fmt" . "code.hoteas.com/golang/hotime" . "code.hoteas.com/golang/hotime/common" ) var ExpectDemoTest = CtrTest{ "string_result": {Desc: "返回字符串", Func: func(a *Api) { a.Get("result是字符串", 0, "操作成功") }}, "number_result": {Desc: "返回整数", Func: func(a *Api) { a.Get("result是整数", 0, int64(1)) }}, "float_result": {Desc: "返回小数", Func: func(a *Api) { a.Get("result是小数", 0, float64(1.0)) }}, "bool_result": {Desc: "返回布尔", Func: func(a *Api) { a.Get("result是布尔", 0, true) }}, "map_result": {Desc: "返回对象", Func: func(a *Api) { a.Get("result是Map-校验字段名和类型", 0, Map{ "id": int64(1), "name": "sample", "price": float64(1.0), "in_stock": true, }) }}, "nested_result": {Desc: "返回嵌套对象", Func: func(a *Api) { a.Get("深层嵌套Map+Slice+Map", 0, Map{ "id": int64(1), "title": "sample", "customer": Map{"id": int64(1), "name": "sample", "phone": "sample"}, "items": Slice{Map{ "id": int64(1), "goods_name": "sample", "quantity": int64(1), "price": float64(1.0), }}, "extra": Map{ "delivery": Map{"address": "sample", "fee": int64(1)}, }, }) }}, "slice_result": {Desc: "返回数组", Func: func(a *Api) { a.Get("result直接是Slice", 0, Slice{Map{"id": int64(1), "name": "sample"}}) }}, "error_demo": {Desc: "错误+成功混合", Func: func(a *Api) { a.Form(Map{"name": ""}).Post("名称为空-错误断言", 3, "名称不能为空") a.Form(Map{"name": "测试"}).Post("名称正确-结构校验", 0, Map{ "id": int64(1), "name": "sample", "created": true, }) }}, "no_expect": {Desc: "不传预期(仅校验status)", Func: func(a *Api) { a.Get("只校验status=0", 0) }}, "verify_demo": {Desc: "Verify数据库校验", Func: func(a *Api) { a.Form(Map{"name": ""}).Post("名称为空", 3, "名称不能为空") a.Form(Map{"name": "verify_test"}). Verify(func(a *Api) error { row := a.DB().Get("test_batch", "*", Map{"AND": Map{"name": "verify_test", "title": "verify_demo"}}) if row == nil { return fmt.Errorf("test_batch 表未找到 name=verify_test 的记录") } if row.GetCeilInt64("state") != 0 { return fmt.Errorf("test_batch.state 期望 0, 实际 %d", row.GetCeilInt64("state")) } return nil }). Post("写入并校验DB-正确", 0, Map{"id": int64(1), "name": "sample"}) a.Form(Map{"name": "verify_fail"}). Verify(func(a *Api) error { row := a.DB().Get("test_batch", "*", Map{"AND": Map{"name": "verify_fail", "title": "verify_demo"}}) if row == nil { return fmt.Errorf("test_batch 表未找到 name=verify_fail 的记录") } if row.GetCeilInt64("state") != 99 { return fmt.Errorf("test_batch.state 期望 99, 实际 %d(接口写入的是0,这里故意校验99来演示失败效果)", row.GetCeilInt64("state")) } return nil }). Post("写入并校验DB-故意失败", 0, Map{"id": int64(1), "name": "sample"}) }}, }