代码测试
编写测试文件
模块目录中:
测试文件:以 xxx_test.v结尾
测试函数:以test_xxx()开头
assert 断言
assert后面的表达式结果不为true,即为测试不通过
举例:vlib/builtin/string_test.v
1. fn test_add() {
2. mut a := 'a'
3. a += 'b'
4. assert a==('ab')
5. a = 'a'
6. for i := 1; i < 1000; i++ {
7. a += 'b'
8. }
9. assert a.len == 1000
10. assert a.ends_with('bbbbb')
11. a += '123'
12. assert a.ends_with('3')
13. }
15. fn test_ends_with() {
16. a := 'browser.v'
17. assert a.ends_with('.v')
18. }
20. fn test_between() {
21. s := 'hello [man] how you doing'
22. assert s.find_between('[', ']') == 'man'
23. }
执行测试
执行单个测试文件
1. v test xxx_test.v
执行模块测试文件
1. v test xxx(模块名/目录名)
会逐个执行模块,包括子模块中的所有测试文件,所有以test_开头的测试函数
执行测试时,可增加-stats选项,显示更为详细的测试结果
1. v -stats test xxx.v
忽略testdata目录
如果希望有一些测试文件要忽略执行,可以创建名为testdata的目录,测试框架会忽略这个目录.
实际开发场景中,这个目录还是挺实用的,可以把临时不用的测试文件挪到该目录中.
