<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pytest on 老张开工了</title>
    <link>/pytest/</link>
    <description>Recent content in Pytest on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 27 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/pytest/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>测试入门：unittest 与 pytest</title>
      <link>/posts/2026/05/testing/</link>
      <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/05/testing/</guid>
      <description>当项目从几十行代码膨胀到几千行时，你会面临一个残酷的现实：改了一处逻辑，不知道哪里会碎。手动测试一遍所有功能越来越耗时，而且人总会漏掉东西。这就是自动化测试登场的地方——用代码来验证代码。&#xA;Python 的标准库内置了 unittest 模块，社区则更青睐简洁的 pytest。本章从零开始，带你建立测试思维，掌握两种测试框架，最终写出可维护的测试。&#xA;为什么需要测试？ 没有测试的项目就像走在钢丝上：&#xA;# 假设这是你的核心函数 def calculate_discount(price: float, member_level: str) -&amp;gt; float: &amp;#34;&amp;#34;&amp;#34;根据会员等级计算折扣价&amp;#34;&amp;#34;&amp;#34; discounts = {&amp;#34;normal&amp;#34;: 0.95, &amp;#34;silver&amp;#34;: 0.9, &amp;#34;gold&amp;#34;: 0.8} return price * discounts.get(member_level, 1.0) # 改了一行代码——有人把 silver 的折扣改成了 0.85 # 没有测试的话，你可能永远不会发现这个&amp;#34;优化&amp;#34;改变了行为 测试带来的好处：&#xA;好处 说明 回归防护 修改代码后立即知道是否有东西被破坏 活的文档 测试代码展示了函数在各种情况下的预期行为 设计反馈 如果函数很难写测试，通常意味着它的设计需要改进 信心 重构时不怕改出问题，测试网络会兜住你 unittest：标准库自带 unittest 是 Python 标准库的一部分，灵感来自 Java 的 JUnit。不需要额外安装，开箱即用。&#xA;基本结构 import unittest # 被测函数 def add(a, b): return a + b class TestMathOperations(unittest.</description>
    </item>
  </channel>
</rss>
