← 返回题库
中级

编写API端到端测试

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    orders_csv = open_url(____).read()
    payments_csv = open_url(____).read()
    import pandas as pd
    from io import StringIO
    orders = pd.read_csv(StringIO(____))
    payments = pd.read_csv(StringIO(____))
    class TestSuite:
        def __init__(____): self.passed = self.failed = ____; self.results = []
        def assert_equal(____):
            ok = actual == expected
            self.passed += ok; self.failed += not ok
            self.results.append((____))
        def assert_true(____):
            self.passed += condition; self.failed += not condition
            self.results.append((____))
        def report(____):
            for name, ok, actual, expected in self.results:
                status = '____' if ok else f'____'
                print(____)
            print(____)
    ts = TestSuite()
    ts.assert_true("____", len(____) > ____)
    ts.assert_true("____", orders['____'].notna().all())
    ts.assert_true("____", (____).all())
    valid_statuses = {'____','____','____','____','____'}
    ts.assert_true("____", set(orders['____'].unique()).issubset(____))
    ts.assert_true("____", len(____) > ____)
    ts.assert_true("____", (____).all())
    paid_orders = orders[orders['____'].isin(____)]['____']
    pay_order_nos = set(payments['____'].astype(____))
    ts.assert_true("____", all(____))
    ts.report()

示例

输入
solve()
期望输出
[PASS] orders table not empty
  [PASS] all orders have order_no
  [PASS] all amounts > 0
  [PASS] all statuses valid
  [PASS] payments exist
  [PASS] no negative amounts
  [PASS] paid orders have payments
Total: 7 passed, 0 failed
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码