测试用例应仅包含相关细节

2024-03-31   出处: Google Testing Blog  作/译者:Dagang Wei/暖阳

下面的代码中有什么问题使得这个测试用例难以理解?

def test_get_balance(self):

  settings = BankSettings(FDIC_INSURED, REGULATED, US_BASED)

  account = Account(settings, ID, BALANCE, ADDRESS, NAME, EMAIL, PHONE)

  self.assertEqual(account.GetBalance(), BALANCE)

问题在于,账户创建的代码中存在很多杂乱信息,很难分辨哪些细节与断言语句相关。

但是,从一个极端到另一个极端也会使得测试难以理解:

def test_get_balance(self):

  account = _create_account()

  self.assertEqual(account.GetBalance(), BALANCE)

这里的问题是,_create_account() 辅助函数中隐藏了关键细节,因此不清楚 BALANCE 字段来自何处。要理解这个测试用例,就需要切换上下文,深入研究辅助函数。

一个好的测试用例应该只包含与用例相关的细节,同时隐藏杂乱信息:

def test_get_balance():

  account = _create_account(BALANCE)

  self.assertEqual(account.GetBalance(), BALANCE)

通过这样的优化,测试的数据流动将更加清晰可见。例如:


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
137° /1371 人阅读/0 条评论 发表评论

登录 后发表评论