代码测试

编写测试文件

模块目录中:

测试文件:以 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的目录,测试框架会忽略这个目录.

实际开发场景中,这个目录还是挺实用的,可以把临时不用的测试文件挪到该目录中.