如何编写测试
Jam.py 使用 Mocha/Chai 进行前端单元测试,使用 pytest 进行数据集集成测试。 这些例子在 tests 文件夹中。
首先,从 Jam.py-v7 仓库创建自己的仓库副本(forks);
然后,克隆你的仓库副本:
...\> git clone https://github.com/YourGitHubName/jam-py-v7.git
...\> cd jam-py-v7/tests/project
要添加一个新的前端测试,请在 project/js 文件夹中添加 JavaScript 文件。
假如,我们想对 user 表的一个名为 username 的字段进行 CRUD 测试。
项目的文件夹有如下结构:
├── admin.sqlite
├── css
│ └── project.css
├── index.html
├── js
│ ├── test_dataset.js
│ ├── test_details.js
│ ├── test_edit_lock.js
│ ├── test_fields.js
│ ├── test.js
│ └── test_locale.js
├── langs.sqlite
├── server.py
├── templates.html
├── test.html
├── test.sqlite
└── wsgi.py
像往常一样启动项目:
...\> ./server.py
在构建器里,添加一个 Users 表,它有一个名为 Username 的字段,如图示:
127.0.0.1:8080/builder.html
在 index.html 中添加一个新的 js 文件:
<script src="js/test_users.js"></script>
index.html 内容应该如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Jam.py tests</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/6.1.4/mocha.css">
</head>
<body>
<div id="mocha"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/11.7.2/mocha.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chai@4.3.4/chai.js"></script>
<script>mocha.setup('bdd')</script>
<script src="jam/js/jquery.js"></script>
<script src="jam/js/bs5/bootstrap.bundle.js"></script>
<script src="jam/js/zebra_datepicker.js"></script>
<script src="jam/js/jquery.maskedinput.js"></script>
<script type="module" src="jam/js/jam.js"></script>
<script src="js/test_dataset.js"></script>
<script src="js/test_details.js"></script>
<script src="js/test_fields.js"></script>
<script src="js/test_edit_lock.js"></script>
<script src="js/test_locale.js"></script>
<script src="js/test_users.js"></script>
<script>
$(document).ready(function(){
task.load(function() {
mocha.run();
});
});
</script>
</body>
</html>
创建带有测试内容的 js/test_users.js 文件,让后访问应用程序:
127.0.0.1:8080/index.html
所有单元测试都将运行并显示结果。数据库 tests.sqlite 将使用新用户进行更新。
如果该表是使用 “软删除” 选项创建的,表中新行的 DELETED 字段将被设置为 1 。
否则,新记录将被删除。
如果更改后一切顺利,创建一个 Github pull 请求。