我想要一个单元测试来验证特定的命令行标志是否在枚举中。这是我想针对其编写测试的代码:var formatType stringconst ( text = "text" json = "json" hash = "hash")func init() { const ( defaultFormat = "text" formatUsage = "desired output format" ) flag.StringVar(&formatType, "format", defaultFormat, formatUsage) flag.StringVar(&formatType, "f", defaultFormat, formatUsage+" (shorthand)")}func main() { flag.Parse()}只有当 -format 等于上面给出的 const 值之一时,所需的测试才会通过。此值将在 formatType 中可用。一个正确的调用示例是: program -format text测试所需行为的最佳方法是什么?注意:也许我的措辞不好,但显示的代码不是单元测试本身,而是我想针对其编写单元测试的代码。这是我正在编写的工具中的一个简单示例,想询问是否有一种好方法来测试该工具的有效输入。
2 回答
www说
TA贡献1775条经验 获得超8个赞
我不确定我们是否同意术语“单元测试”。在我看来,您想要实现的目标更像是程序中的一个非常正常的测试。你可能想做这样的事情:
func main() {
flag.Parse()
if formatType != text || formatType != json || formatType != hash {
flag.Usage()
return
}
// ...
}
有关定义自定义格式类型及其验证器的解决方案,请参阅 Internet。
- 2 回答
- 0 关注
- 200 浏览
添加回答
举报
0/150
提交
取消