如何编写测试

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 请求。