21天掌握JavaWeb - 第17天:前端页面开发与集成测试

devtools/2024/12/28 1:34:27/

目标

在本章节中,我们将学习如何根据后端API编写前端页面,并进行集成测试以确保前后端功能正常。

前端页面开发

核心概念

前端页面开发通常涉及HTML、CSS和JavaScript的使用,以构建用户界面和交互逻辑。

优势

  • 用户体验:良好的前端设计可以提升用户体验。
  • 响应式设计:适配不同设备和屏幕尺寸。
  • 交互性:JavaScript使得页面可以动态响应用户操作。

示例代码

HTML
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JavaWeb Frontend</title><link rel="stylesheet" href="styles.css">
</head>
<body><div id="app"><h1>用户列表</h1><table id="userTable"><thead><tr><th>用户名</th><th>邮箱</th></tr></thead><tbody><!-- 用户数据将通过JavaScript动态插入 --></tbody></table></div><script src="script.js"></script>
</body>
</html>
CSS (styles.css)
body {font-family: Arial, sans-serif;
}table {width: 100%;border-collapse: collapse;
}th, td {border: 1px solid #ddd;padding: 8px;text-align: left;
}th {background-color: #f2f2f2;
}
JavaScript (script.js)
document.addEventListener('DOMContentLoaded', function() {fetch('/api/users').then(response => response.json()).then(data => {const tableBody = document.getElementById('userTable').getElementsByTagName('tbody')[0];data.forEach(user => {const row = tableBody.insertRow();row.insertCell(0).textContent = user.username;row.insertCell(1).textContent = user.email;});}).catch(error => console.error('Error fetching users:', error));
});

集成测试

核心概念

集成测试是确保各个模块或组件在组合后能正常工作的过程。

优势

  • 早期发现问题:在开发早期发现集成问题。
  • 确保功能:确保所有功能按预期工作。

测试工具

  • Jest:JavaScript测试框架。
  • Mocha:功能丰富的JavaScript测试框架。
  • Cypress:端到端测试工具。

示例代码

使用Jest进行单元测试
// user.test.js
const { getUserList } = require('./script');test('should fetch user list', async () => {const users = await getUserList();expect(users).toEqual(expect.arrayContaining([expect.objectContaining({ username: expect.any(String), email: expect.any(String) })]));
});

总结

前端页面开发与集成测试中,我们学习了如何根据后端API构建前端页面,并使用JavaScript进行动态数据交互。通过集成测试,我们确保了前后端的兼容性和功能的正确性。这个过程不仅提升了应用的用户体验,还通过早期发现问题减少了后期的维护成本。

通过本章节的学习,你应该能够理解前端开发的基本流程,掌握如何与后端API进行交互,并能够进行基本的集成测试。这些技能对于开发现代Web应用至关重要。

复制再试一次分享


http://www.ppmy.cn/devtools/145980.html

相关文章

渗透测试发现漏洞产生原因以及解决方法|网络安全|渗透测试服务

渗透测试发现的问题 SQL注入攻击 原因 后端数据库过于信任前端传入数据 攻击方式&#xff1a; 通过前端输入相关SQL语句&#xff0c;使得后端数据库执行&#xff0c;套取数据库中的关键信息 解决方法&#xff1a; 对于前端传来的数据不直接进行操作数据库&#xff0c;而…

最长公共子序列【东北大学oj数据结构10-3】C++

题面 对于给定两个序列 X 和 Y , 序列 Z 是 X 和 Y 的公共子序列是指如果 Z 同时是 X 和 Y 的子序列。 例如&#xff1a;如果 X {a, b, c, b, d, a, b} 和 Y {b, d, c, a, b, a} , 那么序列 {b, c, a} 是 X 和 Y 的一个公共子序列。 但是序列 { b , c, a } 不是 X 和 Y 的最…

centos单机部署seata

文章目录 场景分析下载seata包启动 场景 centos7.9 jdk17 安装部署seata 分析 jdk和seata的版本对应关系如图 JDK版本 推荐 Seata 版本 理由 JDK 8 任何 Seata 版本 JDK 8 是 Seata 长期支持的版本&#xff0c;兼容性最好。 JDK 11 Seata 1.2.0 适合需要长期支持且性能较高的应…

如何永久解决Apache Struts文件上传漏洞

Apache Struts又双叒叕爆文件上传漏洞了。 自Apache Struts框架发布以来&#xff0c;就存在多个版本的漏洞&#xff0c;其中一些漏洞涉及到文件上传功能。这些漏洞可能允许攻击者通过构造特定的请求来绕过安全限制&#xff0c;从而上传恶意文件。虽然每次官方都发布补丁进行修…

RCE 命令执行漏洞 过滤模式 基本的过滤问题 联合ctf题目进行实践

前言 知道RCE 命令执行分为 代码执行 和 命令执行 原理 &#xff1a; 就是用户的输入被当做命令或者代码执行了 从而造成了危害 代码执行 除了eval php代码执行漏洞的函数还有 eval()、a ssert()、 preg_replace()、 create_function()、 array_map()、 call_user_func(…

JavaScript 平面坐标多边形边界线(包围盒)算法

实现&#xff1a; /*** description: 获取多边形边界(边界框或包围盒算法)* param {*} polygon 多边形顶点数组* return {*} rect 顶点数组*/getBoundingRectangle(polygon) {if (!Array.isArray(polygon) || polygon.length < 3) {throw new Error(Polygon must have at le…

leetCode43.字符串相乘

题目&#xff1a; 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的BigInteger库或直接将输入转换为整数。 示例1&#xff1a; 输入&#xff1a;num1“2”,num2“3” 输出…

【ES6复习笔记】Class类(15)

介绍 ES6 提供了更接近传统语言的写法&#xff0c;引入了 Class&#xff08;类&#xff09;这个概念&#xff0c;作为对象的模板。通过 class 关键字&#xff0c;可以定义类。基本上&#xff0c;ES6 的 class 可以看作只是一个语法糖&#xff0c;它的绝大部分功能&#xff0c;…