gpt4 book ai didi

python - 使用 Unittest Python 进行测试

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:22 24 4
gpt4 key购买 nike

我正在使用 Python Unittest 运行测试。我正在运行测试,但我想进行负面测试,我想测试函数是否抛出异常,它通过但如果没有抛出异常,则测试失败。我的脚本是:

    try:
result = self.client.service.GetStreamUri(self.stream, self.token)
self.assertFalse
except suds.WebFault, e:
self.assertTrue
else:
self.assertTrue

即使函数运行完美,它也总是作为 True 传递。我还尝试了其他各种方式,包括:

    try:
result = self.client.service.GetStreamUri(self.stream, self.token)
self.assertFalse
except suds.WebFault, e:
self.assertTrue
except Exception, e:
self.assertTrue

有人有什么建议吗?

谢谢

我试过 assertRaises 但没有成功。

    try:
result = self.client.service.GetStreamUri(self.stream, self.token)
self.assertRaises(WebFault)
except suds.WebFault, e:
self.assertFalse
except Exception, e:
self.assertTrue

还是过去了。由于某种原因,它不会尝试执行 assertRaises 语句。我也试过:(函数应该失败但测试应该通过)

    try:
result = self.client.service.GetStreamUri(self.stream, self.token)

except suds.WebFault, e:
self.assertFalse
except Exception, e:
self.assertTrue
else:
self.assertFalse

出于某种原因,即使函数通过,它也不会引发错误。无论发生什么异常,它总是如此。除非有 else 语句,否则它会转到那个。

找到了一种可行的方法,但它似乎是一种非常糟糕的做事方式:

谁能建议一种更简洁的方法?

    try:
result = self.client.service.GetStreamUri(self.stream, self.token)

except suds.WebFault, e:
self.assertFalse
except Exception, e:
pass

try:
result==result
except:
result=None
if result==None:
assert True
else:
assert False

最佳答案

TestCase.assertRaises 是您所需要的,但是在您的示例中,您似乎稍微滥用了它。你需要这样的东西:

def test_GetStreamUri(self):
self.assertRaises(WebFault, self.client.service.GetStreamUri)
result = self.client.service.GetStreamUri(self.stream, self.token)

您需要告知 unittest 可调用对象,在调用可调用对象之前会引发异常。

关于python - 使用 Unittest Python 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2874753/

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