1

pray 


2

from app import app
import unittest
  • 1.
  • 2.

2.1 在测试文件中导入 Flask 应用程序和 unittest 模块,

class MyTestCase(unittest.TestCase):
    def setUp(self):
        app.testing = True
        self.client = app.test_client()
  • 1.
  • 2.
  • 3.
  • 4.

2.2 创建了一个测试类MyTestCase,并继承自 unittest.TestCase。

2.3 在setUp方法中,设置了应用程序的测试模式为True,并创建了一个测试客户端对象self.client。

    def test_get(self):
        # 使用 Flask 提供的测试客户端进行 GET 请求
        resp = self.client.get('/')
        # 断言响应的状态码为200
        self.assertEqual(resp.status_code, 200)
        # 断言响应的数据为"Hello World!"
        self.assertEqual(resp.data, b"Hello World!")

    def test_post(self):
        # 使用 Flask 提供的测试客户端进行 POST 请求
        resp = self.client.post('/post', data={"name": "yaco"})
        # 断言响应的状态码为200
        self.assertEqual(resp.status_code, 200)
        # 断言响应的数据为"yaco"
        self.assertEqual(resp.data, b"yaco")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

2.4 在test_get和test_post方法中,使用测试客户端对象分别发送了一个 GET 请求和一个 POST 请求,并断言了响应的状态码和数据与预期结果是否一致。

if __name__ == '__main__':
    unittest.main()
  • 1.
  • 2.

2.5通过执行unittest.main()方法来运行所有的测试用例。

运行上述测试文件,输出结果为:

Ran 1 test in 0.001s
OK
  • 1.
  • 2.
  • 3.
  • 4.



3

写入4865×10s后 就写不下去了 日志

1213kb


4

4.1 

unittest.TestCase:创建测试用例的基类。所有测试方法都应该继承自这个类。


4.2

断言方法


4.3

断言测试不同于报错


python flask unittest 单元测试_客户端


4.4

def divide(a, b):
    # assert b != 0, "Denominator must not be zero"
    return a / b


import unittest


def multiply(a, b):
    return a * b


class TestMathOperations(unittest.TestCase):
    def test_divide(self):
        self.assertEqual(divide(10, 0), 5)

        # with self.assertRaises(AssertionError):
        # divide(10, 0)


if __name__ == '__main__':
    unittest.main()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.