gpt4 book ai didi

python - self.assertTrue(False) 到底测试了什么

转载 作者:行者123 更新时间:2023-11-28 22:41:18 25 4
gpt4 key购买 nike

我正在为我们的应用程序编写一些测试,但我不确定我在这里测试的是正确的东西。这是我的测试。

def test_ReservationExtensionFalseWrongResource(self):
'does not create a reservation that is an extension if different resource'
try:
reservation1 = Reservation.objects.create(user=self.regularUser1, resource=self.resource1, modality=self.modality, timeFrom=datetime(2015, 6, 11, 20, tzinfo=pytz.utc), timeTo=datetime(2015, 6, 11, 21, tzinfo=pytz.utc), count=1, notes=None, extendedReservation=None)
reservation = create_reservation(self.regularUser2, self.regularUser2, None, self.resource2, self.modality, datetime(2015, 6, 11, 20, tzinfo=pytz.utc), datetime(2015, 6, 11, 21, tzinfo=pytz.utc), 1, reservation1.uuid)
self.assertTrue(False, "Should not create reservation")
except Exception, e:
self.assertTrue(True, "Not authorized")

我想确保如果它属于不同的资源,则无法创建预订扩展,因此该行应该在 try block 中失败:

 reservation = create_reservation(self.regularUser2, self.regularUser2, None, self.resource2, self.modality, datetime(2015, 6, 11, 20, tzinfo=pytz.utc), datetime(2015, 6, 11, 21, tzinfo=pytz.utc), 1, reservation1.uuid)

这样做:

self.assertTrue(False, "Should not create reservation")

断言预订创建导致了 False 值?或者我是否错误地理解了断言匹配器。我已经尝试查看文档,但在对我来说很明显的 try catch block 中看不到任何类似的示例。

感谢您的帮助。

最佳答案

来自 python 文档的函数签名

 assertTrue(expr, msg=None)

检查给定的 expr 是否为 True。如果 exprFalse,它将使用提供的消息 (msg)

引发错误
self.assertTrue(True, "Not authorized") # Is always True 

self.assertTrue(False, "Should not create reservation") # Is always False and it will throw an error saying "Should not create reservation"

因此在您的 try block 中,如果未引发任何异常,self.assertTrue(False, "Should not create reservation") 将抛出错误,因为 False 是不是 True

如果引发异常,那么您的代码将进入Except block 并且self.assertTrue(True, "Not authorized") 不会引发任何错误,因为 True 是 True。

所以,如果你想抛出异常,如果有任何异常发生,移动self.assertTrue(False, "Should not create reservation")到Except block

except Exception, e:
self.assertTrue(False, "Should not create reservation")

关于python - self.assertTrue(False) 到底测试了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32750768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com