数组可以通过2种方式进行比较-
它们引用内存中的同一数组对象。
它们可能引用不同的对象,但是它们的内容都是相同的。
对于情况1,茉莉提供了toBe方法。以此作为参考。例如,
describe("Array Equality", () => { it("should check for array reference equility", () => { let arr = [1, 2, 3]; let arr2 = arr // Runs successfully expect(arr).toBe(arr2); // Fails as references are not equal expect(arr).toBe([1, 2, 3]); }); });
输出结果
这将给出输出-
1) Array Equality should check for array equility Message: Expected [ 1, 2, 3 ] to be [ 1, 2, 3 ]. Tip: To check for deep equality, use .toEqual() instead of .toBe().
对于情况2,我们可以使用toEqual方法并深度比较数组。例如,
describe("Array Equality", () => { it("should check for array reference equility", () => { let arr = [1, 2, 3]; let arr2 = arr; // Runs successfully expect(arr).toEqual(arr2); // Runs successfully expect(arr).toEqual([1, 2, 3]); }); });
输出结果
这将给出输出-
1 spec, 0 failures
程序测试是一种找到缺陷的有效方式,但是它对证明没有缺陷却无能为力。 Edsger W. Dijkstra, “The Humble Programmer” (1972) 作为软件工程质量保障体系的重要一环,测试是应该引起我们充分注意并重视的事情。前面说过,Rust 语言的设计集成了最近十多年中总结出来的大量最佳工程实践,而对测试的原生集成也正体现了这一点。下面来看 Rust 是怎么设计测试特性的。
本章讲解 Rust 中内建的测试与评测相关知识。 测试 (testing) 评测 (benchmark)
、和有什么区别? 请注意,是中引入的自定义匹配器,以及其他有用且方便的匹配器,如或。 这个问题应该是一般性的,但是,作为一个真实的示例,我测试一个元素是否显示在中。在这种情况下我应该使用哪个匹配器?
ATDD的基本周期是在我们写验收测试之后,我们写那个验收测试的TDD测试。但我的问题是,您如何指定哪个单元测试与哪个验收测试相关?通过我们在ATDD和TDD上所做的特性或其他技术,这是可能的吗?
单元测试 单元测试例子放到自己开发的模块下。 如果依赖了第三方服务端(例如Zookeeper),请手动加入 profile。参考 registry-zookeeper 模块代码。 如果依赖了其它模块要集成测试,请放到 test/test-intergrated 模块中。 如果还依赖了第三方服务端(例如Zookeeper),请放到 test-intergrated-3rd 模块中。 性能测试 关闭了
单元测试是用来校验程序的正确性的,然而,程序能正常运行后,往往还需要测试程序(一部分)的执行速度,这时,f就需要用到性能测试。 通常来讲,所谓性能测试,指的是测量程序运行的速度,即运行一次要多少时间(通常是执行多次求平均值)。Rust 竟然连这个特性都集成在语言基础特性中,真的是一门很重视工程性的语言。 下面直接说明如何使用。 cargo new benchit cd benchit 编辑 src