簡體   English   中英

在python中合並斷言

[英]Combine asserts in python

我有一個這樣的測試用例:

class TokenGeneratorTestCase(unittest.TestCase):

        def test_genToken(self):
                """
                Test if genToken returns a UUID, if not, then -1
                """
                tg = TokenGenerator()
                result = tg.genToken()
                self.assertIn(type(result), [ uuid.UUID, int ])
                if type(result) == int:
                        self.assertEqual(result, -1)

我想測試genToken()是否返回uuid.UUID或-1。 是否可以使用單個assert *來完成?

PS:我是Python和單元測試的新手,所以請原諒我的無知:)

在執行操作時有兩個斷言沒有什么錯(假設您捕獲了AssertionError :))。 不過,如果您願意,也可以像這樣組合它們:

# You can also use type(result) == uuid.UUID or result == -1
correctness = isinstance(result, uuid.UUID) or (isinstance(result, int) and result == -1)
self.assertTrue(correctness)

您在這里遇到問題-因為無法確定TokenGenerator是否正常工作。 它總是可以返回-1 ,您會很高興測試通過。 您需要在此處創建兩個測試-一個驗證生成器返回-1 ,另一個驗證生成器返回uuid.UUID 這些測試應該是可重復的,而不是隨機的。 你該怎么做? 您應該能夠從測試中影響令牌生成器中的someCondition 也就是說,您應該將某些依賴項傳遞給generator,或者在調用genToken()之前設置適當的generator狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM