当前位置: 首页 > news >正文

泰安正规网站建设公司电话现在网站主怎么做淘宝客

泰安正规网站建设公司电话,现在网站主怎么做淘宝客,办公室现代简约装修,网站开发中的著作权归属Rust 第18节 软件测试 测试已写的函数 在创建每一个lib crate时#xff0c;rust都会自动生产一个测试 mod;名字为tests; tests mod 被属性 #[cfg(test)] 修饰#xff0c;用于测试#xff1b; 在mod 内#xff0c;需要在函数头上加属性 #[test]进行修饰#xff0c;让其变为…Rust 第18节 软件测试 测试已写的函数 在创建每一个lib crate时rust都会自动生产一个测试 mod;名字为tests; tests mod 被属性 #[cfg(test)] 修饰用于测试 在mod 内需要在函数头上加属性 #[test]进行修饰让其变为测试函数 pub fn add(left: usize, right: usize) - usize {left right }mod tests {use super::*;#[test]fn test1() {let result add(2, 2);assert_eq!(result, 4);} }进行测试 运行 cargo test 命令运行所有的测试函数 当使用 cargo test 命令时Rust会构建一个 Test Runner 可执行文件他会运行标注了 test 的 函数并报告其运行是否成功。 主线程监视每一个测试函数的返回结果如果报错就认为测试失败 在创建库项目时会自动创建测试函数 创建库项目命令 cargo new name --lib assert!()、assert_eq!() 和 assert_nq!() 宏 断言 宏 assert!(); 检查状态是否为 true ; true 测试通过否则调用 painc! 测试失败 assert_eq!() 判断两个数是否相等 assert_ne!() 判断两个数是不是不等 这两个宏当断言失败时都会打出两个参数的值; 这三个宏都可以添加自定义信息当出错时会打印出来在固定的参数后边有一个自定义参数 #[test]fn test_eque() {assert!(my_eque(12, 10),结果不对);}#[test]fn add_two_test(){assert_eq!(4,add_two(2));}#[test]fn add_two_test_v2(){assert_ne!(5,add_two(2));}对于panic进行测试 在特定情况下测试是否会发生panic 加属性 should_panic如果发生painc 测试通过没有发生painc测试不通过 pub fn get_value(value : i32) - i32 {if value 500 {panic!(数据过大);}value }...#[test]#[should_panic]fn get_value_test() {get_value(1000);} ... 让 should_panic 更加精准 单纯的should_panic 只能检测是否发生 panic但是不确定是否为我们期待的painc 可以加上 expected 跟上字符串进行panic 匹配 pub fn value_config(value : i32) {if value 100 {panic!(value is more 100);} if value 0 {panic!(value is less 0);} } ...#[test]#[should_panic(expected value is more 100)]fn value_config_test() {value_config(120);} ... Result 作为测试结果 除了让测试程序painc还可以通过测试函数的返回值来进行判断测试结果。 需要测试函数的返回值为Restul类型 返回Ok;测试通过 返回Err();测试不通过 #[test]fn test_result() - Result(),String {if 2 2 4 {Ok(())} else {Err(测试执行失败.to_string())}}cargo test 命令 当cargo test 不加参数时会进行默认行为 1、并行运行 2、所有测试 3、正常时捕获屏蔽所有输出异常时才会显示 它的参数 分为 1) cargo test的参数 2 cargo test -- 的参数--后的参数后边有空格是给测试生成的二进制文件用的cargo test --help; 显示1 可用参数cargo test -- --help 显示 --后可用参数并行测试时需要保证测试项之间没有依赖且没用共用的全局变量或环境变量等指定并行线程个数 cargo test -- --test-threads1显示函数执行时的输出cargo test -- --show-output按测试的名称运行测试单个测试cargo test 测试函数名参数只能传一个 多个测试参数写 测试名的一部分 或者模块名忽略某个测试项 测试项加属性 ignore默认运行cargo test 时就不会运行该测试项也可以单独运行 ignore 类型的测试项cargo test -- --ignored#[test]#[ignore]fn test_ignore() {assert_eq!(10,100);}测试的分类 1 单元测试 上边均为集成测试的例子小专注某一段代码对某一段代码进行隔离测试一般在代码相同路径建立 tests 模块并加属性标注 #[cfg(test)]这样只有在执行cargo test 时才会编译和运行代码而一般的cargo run 不会进行编译运行单元测试可以测试私有函数 fn fun_2(a : i32,b : i32) - i32 {a b }// 私有函数#[test]fn test_p() {assert_eq!(2,fun_2(1, 1));}2 集成测试 测试代码不在同一路径下不用属性标注 #[cfg(test)]完全位于被测试库外边只能调用测试库的外部接口创建tests目录每一个单独的测试文件都是一个单独的crateuse adder; //导入要测试的lib #[test] fn test_v1() {assert_eq!(4,adder::add(2, 2));}tests 目录会被单独处理 只有运行cargo test 时才会编译运行 运行指定的集成测试 cargo test 函数名运行某个文件下所有集成测试 cargo test --test 文件名由于每个文件都被作为单独的crate,所以各个文件之间数据不共享如果想用不被当做单独的crate进行测试只需要再建一个目录然后在该目录下新建文件即可新的子目录不会被rust当做测试的crate不会在 cargo test 中调用单元测试的crate都可以访问这个文件作为数据共享binary crate 的集成测试 如果只有 src/main.rs没有 src/lib.rs则不能在tests下创建集成测试无法将main.rs 中的函数导入作用域只有 library crate 才能暴露函数给其他crate用binary crate 意味着独立运行
http://www.hkea.cn/news/14317150/

相关文章:

  • 郑州教育网站建设互联网公司排名广州
  • 做网站的岗位叫什么问题临沂做网站设计的公司
  • c 做精品课程网站做微信网站公司名称
  • 模板网站的好处如何做多语言网站
  • 网站怎么做关键词库深圳坪山新闻
  • 网上接手袋做是哪一个网站长春seo排名
  • 做海报素材的网站网站登录系统源码
  • 菏泽网站建设兼职辽宁沈阳网站建设
  • 加快网站访问速度陕西省泰烜建设集团有限公司网站
  • 公司网站要备案吗天津企业模板建站
  • 贵阳房地产网站建设如何介绍设计的网站模板
  • 南宁新技术产业建设开发总公司网站做微商去哪些社交网站
  • 内蒙古住房与城乡建设厅网站软件开发过程五个步骤
  • 在网站文字上做笔记网站建设公司 专题制作
  • 购物网站开发教学视频wordpress+路由器
  • dede s网站地图调文章网站建设需求调研计划表
  • 百度抓取网站频率怎么将网站关键词排名首页
  • 网站信息发布和内容建设自查报告番禺网站公司
  • 网站科技感颜色成都互联网公司十强
  • 旅游门户网站建设方案模板网站流量的重要性
  • html期末大作业个人网站制作巩义机械厂网站建设
  • 做网站的顺序易语言登录WordPress账号
  • 网站建设前期规划方案范文wordpress能做游戏
  • 网站备案流程教程宽屏wordpress主题
  • 南通科技网站建设龙岩e网站
  • 网站301了不知道在哪做的海口网站设计
  • 锡林浩特建设局网站wordpress mxtheme02
  • 好模版网站小程序制作单位
  • 北京网站关键词排名通付盾 网站建设公司
  • 天津 网站设计公司ps做 网站标准尺寸