前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >坚果派首个仓颉三方库发布

坚果派首个仓颉三方库发布

作者头像
徐建国
发布2024-07-16 15:35:23
720
发布2024-07-16 15:35:23
举报
文章被收录于专栏:个人路线

作者:乔汝嘉 团队:坚果派

前言

“仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。融入鸿蒙生态,为开发者提供良好的编程体验。” ——摘自仓颉首页

本文以一个非常简单的例子,介绍一下坚果派三方库leap_year的实现,包括测试框架的简单使用。

创建静态库工程

  1. 在VSCode中创建新的静态工程leap_year
  2. 默认的demo.cj不够正式,我改成了main.cj
  3. main.cj中实现两个函数public func isLeapYear(date: DateTime): Boolpublic func isLeapYear(year: Int): Bool
  1. 这个库的功能就这么简单的完成了

文件目录结构

  1. 仓颉的包管理类似java。必须按照文件夹目录结构来决定包名。这里我们按照通常的做法,目录结构写成com/团队或公司名/库名
  1. 然后在main.cj里声明包名为package com.nutpi.leap_year

单元测试

对库的功能进行单元测试,保证基本功能正确,在之后迭代中做回归测试保证现有功能不被破坏。

  1. 在com/nutpi/leap_year下创建一个test文件夹
  1. 在test文件夹里创建main_test.cj文件用于编写测试用例。根据SDK自带的文档,找到这一页 Cangjie-0.51.4-windows-docs/docs/docs/libs/std/unittest_lib.html#编译选项---test-介绍 其中强调了,测试文件必须以_test.cj结尾。实际尝试之后,确定必须遵守这个规则,否则运行测试的按钮不会出现。
  2. 上图中的.macrocall文件是@XXX的宏(@Test、@TestCase等)展开以后,编译器自动生成的文件。
  3. 如图,在main_test.cj里声明包名以及引用。包名的写法,参考上文说明,这里文件夹多了一层test,所以写成package com.nutpi.leap_year.test。接下去是测试宏的引用,文档里说的并不清晰,经过我的多次尝试,需要导入unittest.*unittest.testmacro.*,分别对应@Test@TestCase。最后是引入main.cj里的函数,对应好包名import com.nutpi.leap_year.isLeapYear
  1. 测试类和方法如图编写。类要用@Test装饰,方法要用@TestCase装饰。如果一切顺利,测试类和各个方法上方都会出现run|debug的字样,点击run或者debug来运行或者调试测试用例。跑测试用例之前,切记要ctrl+s保存一下当前文件改动,直接点击有可能修改无法生效。
  1. 测试用例可以用@Expect来比较相等。
  2. 可以用@BeforeAll@AfterAll来做准备和收尾工作,修饰的方法名可以为任意的。可以看到打印的log,如我们期待的行为。
  1. 上图中也可看到,测试用例通过和失败的情况。

打包并在其他工程中引用

  1. 打开main.cj文件,点击右上角三角按钮,运行打包。
  1. 打开另一个工程,在文件目录结构下方找到CANGJIE LIBRARY工具栏,点击dependencies右侧加号。在弹出的文件夹选择窗中选leap_year项目的根目录。选择完成之后IDE会提示你是否重启LSP服务,一定记得选“是”重启一下,不然编辑器里面会找不到依赖库的引用。
  1. 如图导入包,并在代码中调用isLeapYear()方法
  1. 运行工程,查看log,执行成功
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建静态库工程
  • 文件目录结构
  • 单元测试
  • 打包并在其他工程中引用
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档