我想测试一个构造函数,但如果没有提供一些数据,我需要恐慌,我如何在测试中从恐慌中恢复过来?
目前我已经在我的 TestNew func 中添加了一个带有恢复的延迟,但如果我的地图中的元素具有空 URL,则不会检查其余元素。
去
package testing
type test {
url string
}
func New(ops map[string]string) *test {
if ops["url"] == "" {
panic("Url missing")
}
var t = new(test)
t.url = ops["url"]
return t
}
t_test.go
package testing
type testTest map[string]string
var testingTest = []testTest {
testTest {
"url": "test",
},
testTest{
"url": "",
},
}
func NewTest(t *testing.T) {
defer func() {
recover()
}()
for _, e := range testingTest {
url := New(e)
url.hasUrl(t, e["url"])
}
}
func (s *test) hasUrl(t *testing.T, u string) {
if s.url != u {
t.Errorf("Expected %s to be equal with %s", s.url, u)
}
}
冉冉说
三国纷争
相关分类