下面的代码中有什么问题使得这个测试用例难以理解?
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)
通过这样的优化,测试的数据流动将更加清晰可见。例如:
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取