Unittest 库用于编写仓颉项目单元测试代码,提供包括代码编写、运行和调测在内的基本功能,并为有经验的用户提供的一些高级功能。
仓颉单元测试支持 cjc 编译器(单包编译模式)和 cjpm 包管理器( 多包模式)。
用户可通过快速入门写出第一个单元测试程序。同时文档对于一些基础概念及用法做了说明并附有示例代码,另外,对于一些高阶特性例如参数化测试等做了进一步说明。
如下 API 从其他包中重导出,因此用户亦可以只导入 unittest 即可使用。
类名 | 功能 |
Configuration | 存储 @Configure 宏生成的 unittest 配置数据的对象。Configuration 是一个类似 HashMap 的类,但它的键不是键和值类型,而是 String 类型,和任何给定类型的值。 |
ConfigurationKey | 配置项的键值对象。提供判等及 hashCode 方法。 |
函数名 | 功能 |
random<T>() | 该函数生成 T 类型的随机数据,其中 T 必须实现接口 Arbitrary<T> 。该函数的返回值是参数化测试的一种参数源。 |
函数名 | 功能 |
assertCaughtUnexpectedE(String, String, String, Option<AssertionCtx>) | 捕获的异常不符合预期,记录信息,抛出异常。 |
assertEqual<T>(String, String, T, T, Option<AssertionCtx>) | 比较 expected 和 actual 值是否相等。若不等,直接抛出异常。 |
csv<T>(String, Rune, Rune, Rune, Option<Rune>, Option<Array<String>>, Array<UInt64>, Array<UInt64>, Bool) | 该函数可从 csv 文件中读取类型 T 的数据值,其中 T 必须可被序列化。该函数的返回值是参数化测试的一种参数源。 |
defaultConfiguration() | 生成默认的配置信息。 |
entryMain(TestPackage) | 提供给 cjc --test 使用,框架执行测试用例的入口函数。 |
expectCaughtUnexpectedE(String,String,String, Option<AssertionCtx>) | 捕获的异常不符合预期,记录信息,不抛出异常。 |
expectEqual(String, String, T, T, Option<AssertionCtx>) | 比较 expected 和 actual 值是否相等。记录比较结果,不抛出异常。 |
fail(String) | 使该用例失败,直接抛出异常。 |
failExpect(String) | 使该用例失败,记录信息,不抛出异常。 |
invokeCustomAssert<T>(Array<String>, String, (AssertionCtx) -> T, Option<AssertionCtx>) | 运行在 @Test , @TestCase , 或 @CustomAssertion 宏中使用的 @Assert\[caller\](passerArgs) 指定的用户定义断言函数。 |
invokeCustomExpect<T>(Array<String>, String, (AssertionCtx) -> Any, Option<AssertionCtx>) | 运行在 @Test , @TestCase , 或 @CustomAssertion 宏中使用的 @Expect\[caller\](passerArgs) 指定的用户定义断言函数。 |
json<T>(String) | 该函数可从 JSON 文件中读取类型 T 的数据值,其中 T 必须可被序列化。该函数的返回值是参数化测试的一种参数源。 |
tsv<T>(String, Rune, Rune, Option<Rune>, Option<Array<String>>, Array<UInt64>, Array<UInt64>, Bool) | 该函数可从 tsv 文件中读取类型 T 的数据值,其中 T 必须可被序列化。该函数的返回值是参数化测试的一种参数源。 |