软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 编程语言 -> Rust1.7.0使用#[test]做单元测试 -> 正文阅读

[编程语言]Rust1.7.0使用#[test]做单元测试


#[test] 是Rust中的注解属性,用于编译环境的注解,类似 java 中的 annotation 和 C# 中的 attribute 。
通过#[test]注解,可以在运行时添加-test 参数进行单元测试。

一、基本使用

$cargo new attribute_test --bin
$cd attribute_test
$vi src/main.rs

main.rs 代码如下:
fn main(){
}

macro_rules! say_hello{
   ()=>(
       println!("Hello");
   )
}

#[test]
fn test_say_hello(){
  say_hello!();
}

运行
$cargo test

结果
Running target/debug/attribute_test-431700a6ad4b39fd

running 1 test
test test_say_hello ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured

二、增加一个 say( ) 功能函数

fn main(){

}

macro_rules! say_hello{
   ()=>(
       println!("Hello");
   )
}

#[test]
fn test_say_hello(){
  say();
}

fn say(){
  say_hello!();
}

say( )功能函数在 test_say_hello( )下面,
? 可以正常调用。
说明,在同一个文件中功能函数之间的顺序没有关系。

三、将宏放到功能函数后面

fn main(){

}

#[test]
fn test_say_hello(){
  say();
}

fn say(){
  say_hello!();
}

macro_rules! say_hello{
   ()=>(
       println!("Hello");
   )
}

执行,提示
error: macro undefined: 'say_hello!'

? 不能编译!
宏定义要出现在使用的功能函数前面!
通常将所有的宏定义在单独的 模块/文件 中,然后通过 #[macro_use] 引入当前使用域。

四、使用宏模块 (macro module)


创建宏模块
$vi macros.rs

模块内容
macro_rules! say_hello{
   ()=>(
       println!("Hello");
   )
}

修改主文件
$vi main.rs

文件内容,文中增加#[macro_use]导入macros宏模块
#[macro_use]
mod macros;


fn main(){
 say();
}


#[test]
fn test_say_hello(){
  say();
}


fn say(){
  say_hello!();
}
$cargo run
Running `target/debug/attribute_test`
Hello

? 通过!
$cargo test
Running target/debug/attribute_test-431700a6ad4b39fd

running 1 test
test test_say_hello ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured

? 通过!
......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-03 20:43:25  
编程语言 最新文章
Java面试题(1)
ReactiveX序列——RxSwift
C++STL之ACM相关知识大全
c++中vector向量几种情况的总结(向量指针,
SSH框架整合demo
JAX
UVA
curl备忘(1)
C#机房重构——万事开头难(二)
OJ刷题
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年1日历
2018-1-17 14:54:30
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --