课程章节介绍
同学们,我们来看两个挺实用的注解,就是`@IsTest`和`@JsonAccess`。我会用大白话给你讲清楚它们干什么用。
先说说`@IsTest`。你在写Apex测试类的时候,肯定见过它,它就是专门用来标记“这段代码只做测试,不算正式业务逻辑”的。你可以把它贴在一个类上,也可以只贴在某个方法上。它还有几个小伙伴可以一起用,你记住:
一个是`SeeAllData`,比如写`@IsTest(SeeAllData=true)`,这么一来,你的测试就能看到组织里所有已有的数据了,不用再自己造数据;不过平时我们更推荐自己建数据,这样可控。
还有`OnStart`,这个是在安装包的时候才会用,用来在包安装完立刻跑一些测试逻辑。
然后是`IsFlow`,它让测试可以并行跑,提高效率,不过要注意别让并行测试互相打架。
另外还有一些修饰符,像`Beta`和`testFor`之类的,用得相对少些,将来遇到查一下就行。
好,再来看`@JsonAccess`。这个注解是控制类的实例能不能被序列化(变成JSON字符串)或者反序列化(从JSON字符串变回对象)。你可以在类定义前加上它,然后配上`serializable`和`deserializable`这两个参数,来强制规定上下文里到底让不让你做序列化。
比如你写`@JsonAccess(serializable=true, deserializable=false)`,那这个类的对象就只能转成JSON发出去,但不允许从JSON转回来。要是你违反了设定,比如硬要反序列化一个被禁止的类,运行时就会抛出一个`JSONException`,程序就告诉你“不行”。
简单来说,`@IsTest`帮你管理测试代码和环境,`@JsonAccess`帮你控制对象与JSON互转的权限。这两个注解用好了,代码会更安全也更清晰。
好了,这一页的概念先讲到这儿,有什么问题随时问我。
关键词
Apex
Salesforce
Developer Guide