您如何为以下功能编写测试以获得100%的覆盖率?
doctype 5
html
head
title Upload Form
body
h1 Upload File
form(method="POST", action="/upload", enctype="multipart/form-data")
input(type="file", name="file")
input(type="submit")
答案 0 :(得分:2)
更改方法签名以将其作为输入func (string) (os.File, error)
并在进行测试时将其注入。
这些方面的东西:
func countLines(files []string, open func(string) (*os.File, error)) int {
...
f, err := open(e)
...
}
然后,您可以进行测试并注入一个函数,该函数将返回安排您进行测试的内容。
只需在包的test
目录下创建文件,然后使用这些文件进行测试。
好处是方法更简单,测试也是如此。当你有很多依赖时,第一种方法会变得非常麻烦......