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

房产网站系统源码谷歌官网

房产网站系统源码,谷歌官网,北京网站建设公司制作网站,阜新小程序 阜新网站建设开发喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.3.1. 添加错误信息 在 11.2. 断言(Assert) 中我们学习了assert!、assert_eq!和assert_ne!这三个宏,而这篇文章讲的就是它…

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
请添加图片描述

11.3.1. 添加错误信息

在 11.2. 断言(Assert) 中我们学习了assert!assert_eq!assert_ne!这三个宏,而这篇文章讲的就是它的进阶用法。

这三个宏是可以添加自定义错误信息的,但这是可选项。如果你添加了自定义信息,那么它们将会和标准的示范信息一同打印出来:

  • 对于assert!,第一个参数是必填的,自定义信息作为第二个参数
  • 对于assert_eq!assert_ne!,前两个参数是必填的,自定义信息作为第三个参数

再把自定义信息传进去之后,这个参数会被传递给format!宏,用于拼接字符串,由于format!宏可以使用{}占位符,所以传进去的信息也可以使用占位符。

看个例子:

pub fn greeting(name: &str) -> String {format!("Hello {name}!")
}#[cfg(test)]
mod tests {use super::*;#[test]fn greeting_contains_name() {let result = greeting("Carol");assert!(result.contains("Carol"));}
}
  • greeting有字符串切片参数name,传进去之后会返回Helloname!拼在一起的字符串。
  • 下面的greeting_contains_name测试函数先给把调用greeting("Carol")所获的值赋给result,然后再在result上调用contains这个方法来查找result里是否有"Carol"

这个代码现在测试是没有问题的。

那来手动引入一个bug,修改greeting函数:

pub fn greeting(name: &str) -> String {format!("Hello!")
}#[cfg(test)]
mod tests {use super::*;#[test]fn greeting_contains_name() {let result = greeting("Carol");assert!(result.contains("Carol"));}
}

这样测试会失败:

$ cargo testCompiling greeter v0.1.0 (file:///projects/greeter)Finished `test` profile [unoptimized + debuginfo] target(s) in 0.91sRunning unittests src/lib.rs (target/debug/deps/greeter-170b942eb5bf5e3a)running 1 test
test tests::greeting_contains_name ... FAILEDfailures:---- tests::greeting_contains_name stdout ----
thread 'tests::greeting_contains_name' panicked at src/lib.rs:12:9:
assertion failed: result.contains("Carol")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtracefailures:tests::greeting_contains_nametest result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00serror: test failed, to rerun pass `--lib`

但是失败信息只说在12行第9个字符恐慌了,它没能提供更友好更有价值的一些信息,那怎么办呢?添加自定义信息呗:

pub fn greeting(name: &str) -> String {format!("Hello!")
}#[cfg(test)]
mod tests {use super::*;#[test]fn greeting_contains_name() {let result = greeting("Carol");assert!(result.contains("Carol"),"Greeting did not contain name, value was `{result}`");}
}

输出:

$ cargo testCompiling greeter v0.1.0 (file:///projects/greeter)Finished `test` profile [unoptimized + debuginfo] target(s) in 0.93sRunning unittests src/lib.rs (target/debug/deps/greeter-170b942eb5bf5e3a)running 1 test
test tests::greeting_contains_name ... FAILEDfailures:---- tests::greeting_contains_name stdout ----
thread 'tests::greeting_contains_name' panicked at src/lib.rs:12:9:
Greeting did not contain name, value was `Hello!`
note: run with `RUST_BACKTRACE=1` environment variable to display a backtracefailures:tests::greeting_contains_nametest result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00serror: test failed, to rerun pass `--lib`

可以看到,自定义信息出现在报错信息里了。这样的错误信息更具有实际意义,也就可以更容易地找到错误出现的原因。

http://www.mmbaike.com/news/72728.html

相关文章:

  • 网站需要多大宽带佛山网站定制
  • 网站建设与管理任务分工百度导航下载2021最新版
  • 商城类网站设计制作seo排名关键词
  • 企业网站建设免费郑州seo优化公司
  • github做网站速度快吗站长工具权重
  • 顺德网站制作案例咨询查域名网站
  • 建域名网站需要多少钱免费外链网盘
  • 怎么写网站头部和尾部网站搜什么关键词好
  • 网站建设做的好的公司百度提交入口网址
  • 开放平台架构保定seo排名外包
  • 东城免费做网站站长工具站长
  • 重庆做网站公司电话杭州seo培训
  • 公众号做微网站深圳关键词首页排名
  • 医药网站建设方案实体店营销策划方案
  • 电影网站的建设英文网站设计公司
  • 爱站网seo培训俄罗斯搜索引擎浏览器
  • 名人堂网站建设网络营销做得好的酒店
  • 手机营销推广方案安卓优化大师app下载安装
  • 网站如何做二级域名域名购买哪个网站好
  • 公司网站建设怎么选择推广计划
  • 赣州一店面爆炸4死seo营销名词解释
  • 网站目录在哪里视频seo优化教程
  • 百度app平台涟源网站seo
  • wordpress社团网站hao123文件在哪里
  • 个人做discuz网站备案广州市新闻最新消息
  • 贵阳有哪家做网站建设好点的网站推广网络营销
  • 网站域名和网址一样吗竞价推广怎样管理
  • 做分类信息网站赚钱吗口碑营销的特征
  • 网站的建设目标有哪些平台关键词排名优化
  • 沈阳网站制作找网势科技百度排名