软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 编程语言 -> Rust1.7.0使用#[test]做单元测试 -> 正文阅读
编程语言 最新文章
Java面试题(1)
ReactiveX序列——RxSwift
C++STL之ACM相关知识大全
c++中vector向量几种情况的总结(向量指针,
SSH框架整合demo
JAX
UVA
curl备忘(1)
C#机房重构——万事开头难(二)
OJ刷题

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

  2016-04-03 20:44:42

#[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  
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图 中国文化英文 多播视频 装修知识库
2017-1-18 20:01:48
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --