【Rust自学】11.9. 单元测试
11.9 单元测试11.9.1. 测试的分类Rust把测试分为两类单元测试和集成测试。- 单元测试比较小也比较专注。每一个都单独测试一个模块还可以测试私有接口。- 集成测试完全位于代码库之外。它们使用你的代码的方式和其他外部代码一样。集成测试只能访问公共接口并且每个测试可能用到多个模块。11.9.2.#[cfg(test)]标注单元测试的目的是把一小段代码隔离出来从而快速判断它的行为是否符合预期。我们通常把单元测试和被测试的代码放在src下的同一个文件中。按照惯例每个源文件还应有一个test模块来存放这些函数并用#[cfg(test)]标注测试模块。带有这个标注的代码只有在执行cargo test时才会被编译和运行运行cargo build时不会编译。以上是单元测试的规则。集成测试位于不同的目录因此不需要#[cfg(test)]标注。#[cfg(test)]中的cfg是configuration配置的缩写。使用它相当于告诉Rust被标注的条目只有在指定的配置选项下才会被包含。看个例子pub fn add(left: usize, right: usize) - usize { left right } #[cfg(test)] mod tests { use super::*; #[test] fn it_works() { let result add(2, 2); assert_eq!(result, 4); } }#[cfg(test)]中的配置选项是test。这个配置选项由Rust提供用于编译和运行测试只有在执行cargo test时才会编译和运行#[cfg(test)]下的条目。11.9.3. 测试私有函数Rust允许测试私有函数其他语言不一定如此。看个例子pub fn add_two(a: usize) - usize { internal_adder(a, 2) } fn internal_adder(left: usize, right: usize) - usize { left right } #[cfg(test)] mod tests { use super::*; #[test] fn internal() { let result internal_adder(2, 2); assert_eq!(result, 4); } }即使internal_adder没有用pub声明为公共它仍然可以在测试模块中被调用。

相关新闻

【Rust自学】11.10. 集成测试

【Rust自学】11.10. 集成测试

11.10 集成测试 11.10.1. 什么是集成测试 在Rust里,集成测试完全位于被测试库的外部。集成测试调用库的方式和其他代码一样,这也意味着它们只能调用公共API。 集成测试的目的是验证库的多个部分能否正确地一起工作。 这一点有别于单元测试&#xff1b…

2026/7/23 18:55:03阅读更多 →
PSO-XGBoost组合模型在工业预测中的优化与应用

PSO-XGBoost组合模型在工业预测中的优化与应用

1. 项目概述:当粒子群优化遇上XGBoost在工业预测和数据分析领域,我们常常需要处理复杂的非线性关系。传统单一算法往往难以兼顾预测精度和可解释性,这正是PSO-XGBoost组合模型大显身手的地方。这个项目完整实现了从参数优化到结果解释的全流程…

2026/7/23 18:55:03阅读更多 →
西平装修亲测:2026年7月选这家省心

西平装修亲测:2026年7月选这家省心

2026年,西平全屋定制市场仍面临三大核心挑战:效率低下、成本失控、效果难控。据行业数据显示,73%的业主在装修过程中需要对接至少4个不同服务方(设计师、施工队、建材商、家具商),平均耗时超6个月&#xff…

2026/7/24 20:24:16阅读更多 →
AI Agent 面试题 599:向量数据库的数据更新和增量索引策略

AI Agent 面试题 599:向量数据库的数据更新和增量索引策略

🔥 AI Agent 面试题 599:向量数据库的数据更新和增量索引策略摘要:本文深入解析了「向量数据库的数据更新和增量索引策略」这一 AI Agent 领域的核心面试题。文章从 向量数据库选型 的基本概念出发,系统性地剖析了 数据更新、增量…

2026/7/24 22:22:55阅读更多 →
3分钟零门槛:用免费在线EPUB编辑器打造专业电子书

3分钟零门槛:用免费在线EPUB编辑器打造专业电子书

3分钟零门槛:用免费在线EPUB编辑器打造专业电子书 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编辑器 项目地址: https://gitcode.com/gh_mirrors/ep/EPubBuilder 还在为制作电子书而头疼吗?EPubBuilder让你在浏览器中就能完成专业级EPU…

2026/7/24 22:22:55阅读更多 →
Umi-OCR:免费离线OCR软件终极指南,轻松解决PDF无法复制难题

Umi-OCR:免费离线OCR软件终极指南,轻松解决PDF无法复制难题

Umi-OCR:免费离线OCR软件终极指南,轻松解决PDF无法复制难题 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维…

2026/7/24 22:22:55阅读更多 →
提示词批量降重效率提升300%的秘钥:动态同义链+句法骨架置换法(企业级API已上线)

提示词批量降重效率提升300%的秘钥:动态同义链+句法骨架置换法(企业级API已上线)

更多请点击: https://kaifayun.com 第一章:提示词批量降重效率提升300%的秘钥:动态同义链句法骨架置换法(企业级API已上线) 在大规模AIGC内容生产场景中,提示词重复率高导致模型响应同质化、平台风控拦截频…

2026/7/24 22:22:55阅读更多 →
好客搜陈海伟专访:十年专注自研,做企业可信赖的 AI 营销源头厂商

好客搜陈海伟专访:十年专注自研,做企业可信赖的 AI 营销源头厂商

深耕企业数字化 AI 营销赛道十年,一手打造微客抖、世客通、智宇 AI 数字人、智搜 GEO 四大自研系统,全国 600 余家代理商、5 万余家终端企业选择,本期专访江苏好客搜创始人好客搜陈海伟,拆解创业初心、技术研发与企业经营理念。 …

2026/7/24 22:22:55阅读更多 →
WaveTools鸣潮工具箱终极指南:解锁高帧率画质与智能抽卡分析

WaveTools鸣潮工具箱终极指南:解锁高帧率画质与智能抽卡分析

WaveTools鸣潮工具箱终极指南:解锁高帧率画质与智能抽卡分析 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否曾在《鸣潮》的世界中感受到画面卡顿的困扰?是否羡慕高端显卡玩家…

2026/7/24 22:20:55阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →