深圳哪家做网站最好辽宁建设工程信息网ca锁激活
news/
2025/10/4 18:29:56/
文章来源:
深圳哪家做网站最好,辽宁建设工程信息网ca锁激活,阿里云wordpress外网访问不了,建设网站与服务器本文目录 本系列文章从新开始为啥要用TypeScript官方文档程序框架从package.json开始tsconfig.jsonJest的配置 jest.config.js服务的实现自动化测试setup.ts文件夹integration 执行及测试对应代码及branch 本系列文章
SAP CAP篇一: 快速创建一个Service#xff0c;基于Java的… 本文目录 本系列文章从新开始为啥要用TypeScript官方文档程序框架从package.json开始tsconfig.jsonJest的配置 jest.config.js服务的实现自动化测试setup.ts文件夹integration 执行及测试对应代码及branch 本系列文章
SAP CAP篇一: 快速创建一个Service基于Java的实现 SAP CAP篇二为Service加上数据库支持 SAP CAP篇三定义Model SAP CAP篇四为CAP添加Fiori Elements程序(1) SAP CAP篇五为CAP添加Fiori Elements程序(2) SAP CAP篇六为CAP添加Fiori Elements程序(3) SAP CAP篇七为CAP添加Fiori Launchpad入口 (Sandbox环境) SAP CAP篇八为CAP添加App Router并支持Fiori Launchpad (Sandbox环境) SAP CAP篇九升级为SAP CDS 7.0, CAP Java 2以及Spring Boot 3 SAP CAP篇十理解Fiori UI的Annoation定义 SAP CAP篇十一支持Media Object图片、附件等 SAP CAP篇十二AppRouter 深入研究
从新开始
虽然本篇是整个CAP系列的第十三篇但是本篇不基于任何之前的文章或代码基础这是一个全新的分支。
为啥要用TypeScript
对于TypeScript的重要性其实无需赘述。这是因为JavaScript是一门解释性语言导致了在大型项目中在调用模块之间的类型安全变成了一个黑洞。而TypeScript作为JavaScript的超集从本源上解决了这个问题。 当然天下没有免费的午餐当TypeScript带来了Type的同时也不可避免地带来了复杂性和额外的编译开支。
官方文档
当然官方文档还是值得看看的虽然一如既往的发散性思维。 链接Help Doc
程序框架
从一个空的文件夹开始这个新项目。
从package.json开始
创建package.json如下
{name: alvachien/sapcap-fiorielements-tsapp,version: 1.0.0,scripts: {test: npx jest --silent,start: cds serve srv/world.cds,start:ts: cds-ts serve srv/world.cds},dependencies: {sap/cds: ^7.5.2},devDependencies: {cap-js/sqlite: ^1.4.0,types/jest: ^29.5.11,types/node: ^20.11.5,axios: ^1.6.5,jest: ^29.7.0,ts-jest: ^29.1.2,ts-node: ^10.9.2,typescript: ^5.3.3},eslintConfig: {extends: eslint:recommended,env: {es2020: true,node: true,jest: true,mocha: true},globals: {SELECT: true,INSERT: true,UPDATE: true,DELETE: true,CREATE: true,DROP: true,CDL: true,CQL: true,CXL: true,cds: true},rules: {no-console: off,require-atomic-updates: off}}
}tsconfig.json
作为TypeScript必备的配置文件
{compilerOptions: {target: ES6,module: commonjs,outDir: ./gen/srv/srv,rootDir: ./srv,baseUrl: ./,moduleResolution: node,skipLibCheck: true,preserveConstEnums: true,sourceMap: false,allowJs: true,strict: true,strictNullChecks: false,strictPropertyInitialization: false,esModuleInterop: true},include: [./srv/**/*]
}Jest的配置 jest.config.js
作为Jest的配置文件
module.exports {preset: ts-jest,globalSetup: ./test/setup.ts
};服务的实现
创建一个srv文件夹分别创建两个文件world.cds和world.ts。
world.cds如下
service say (path: /say) {function hello (to:String) returns String;
}word.ts则提供了实现逻辑
import type { Request } from sap/cds/apis/servicesmodule.exports class say {hello(req: Request) {return Hello ${req.data.to} from a TypeScript file!}
}自动化测试
文件夹test包含了用于自动化测试的文件。
setup.ts
该setup.ts用于Jest的初始化。
module.exports async () {process.env.CDS_TYPESCRIPT true;
};文件夹integration
如这个文件夹的命名可见这里文件中主要是为了集成测试而准备的。
新建hello-world.test.ts
const cds require(sap/cds);describe(Hello world!, () {beforeAll(() { });afterAll(() {});const { GET } cds.test.in(__dirname, ../../srv).run(serve, world.cds);it(should say hello with class impl, async () {const { data } await GET /say/hello(toworld);expect(data.value).toMatch(/Hello world.*typescript.*/i);});
});执行及测试
这时候首先执行以下命令来安装对应的开发包
npm i执行下列命令就可以让这个hello world的服务跑起来
npm run start:ts执行下列命令来执行自动化测试
npm run test自动化测试结果 alvachien/sapcap-fiorielements-tsapp1.0.0 testnpx jest --silentPASS test/integration/hello-world.test.tsTest Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.931 s, estimated 1 s对应代码及branch
与本文配套的代码参见这里。
本篇对应的branch是9_typescript。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927425.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!