fntest_add(){mut a :='a' a +='b'assert a==('ab') a ='a'for i :=1; i <1000; i++{ a +='b'}assert a.len ==1000assert a.ends_with('bbbbb') a +='123'assert a.ends_with('3')}fntest_ends_with(){ a :='browser.v'assert a.ends_with('.v')}fntest_between(){ s :='hello [man] how you doing'assert s.find_between('[',']')=='man'}
> assert 10 == i - 120, 'i: $i'
Left value: 10
Right value: 3
Message: i: 123
[assert_continues]
fn abc(ii int) {
assert ii == 2
}
fn test_abc() {
for i in 0 .. 4 {
abc(i)
}
}
main_test.v:3: ✗ fn abc
> assert ii == 2
Left value: 0
Right value: 2
main_test.v:3: ✗ fn abc
> assert ii == 2
Left value: 1
Right value: 2
main_test.v:3: ✗ fn abc
> assert ii == 2
Left value: 3
Right value: 2
v -assert continues test .
v -assert aborts test . #默认的行为,碰到断言不通过,停止测试
v -assert backtraces test . #碰到断言不通过,停止测试,并调用print_backtrace()显示堆栈信息
v test xxx_test.v
v test xxx(模块名/目录名)
v -stats test xxx.v
[if macos] //只有macos系统中才执行测试
pub fn test_in_macos() {
println("test in macos")
assert true
}
[if !macos] //只有非macos系统才执行测试
pub fn test_not_in_macos() {
$if !macos {
println("test not in macos")
}
$if macos {
println("test in macos")
}
println("test only not in macos")
assert false
}
[if linux]
pub fn test_only_in_linux() {
println("test only in linux")
assert false
}
[if linux || windows] //在linux或windows系统中才执行测试
pub fn test_in_linux_or_macos() {
println("test in linux or macos")
assert false
}