python中的多if期间返回响应
我在做一个,我在检查两个数据库集合中的字段,所以在这期间,我必须做一个多if条件,如下所示:python中的多if期间返回响应,python,unit-testing,flask,Python,Unit Testing,Flask,我在做一个,我在检查两个数据库集合中的字段,所以在这期间,我必须做一个多if条件,如下所示: for doc1,doc2 in itertools.izip(docs1, docs2): if ... : if ... : response = 'Error' else: response = 'OK' else... : if ... : response =
for doc1,doc2 in itertools.izip(docs1, docs2):
if ... :
if ... :
response = 'Error'
else:
response = 'OK'
else... :
if ... :
response = 'Error'
else:
response = 'OK'
if ... :
if ... :
response = 'Error'
else ... :
response = 'OK'
else ... :
if ... :
response = 'Error'
else ... :
response = 'OK'
因此,如果错误发生在其中一个ifs中,我想声明一个响应,给出如下答案:
self.assert400(响应,message=“错误请求,空正文”)
当整个过程正常时,给出一个正常的回答
我只想避免写这样的话:
if ... :
if ... :
self.assert400(response, message="Bad request, empty body.")
else:
self.assert200(response, message="OK.")
else... :
if ... :
self.assert400(response, message="Bad request, empty body.")
else:
self.assert200(response, message="OK.")
那么,如何实现这一目标呢
我想在它的结尾创建一个IF条件,但这不会阻止for循环吗?请帮助我?
在这种情况下,你应该考虑使用默认值,只检查错误情况:response = "OK" # default value
for doc1,doc2 in itertools.izip(docs1, docs2):
if ... :
if ... :
response = "Error"
else... :
if ... :
response = "Error"
if response == "Error":
break
# If no errors were found, then the result must be OK
if response == "Error":
self.assert400(response, message="Bad request, empty body.")
else:
self.assert200(response, message="OK.")
这使得只有一个错误就足以使整个事情失败。我有点不清楚您实际上想要做什么,所以如果这不是您期望的,请发表评论。在我看来,您并不是真正的单元测试。函数和单元测试中的结构完全相同。因此,如果代码更改,测试也必须更改。我认为测试“=”操作符不值得你花时间 我可能错了,但我认为您应该有一个函数,获取doc1和doc2并返回响应。然后对特定输入值的返回值进行单元测试。大概是这样的:
result = foo(doc1,doc2)
self.assert_equal(result.message, "Bad request, empty body.")
result = foo(doc3,doc4)
self.assert_equal(result.message, "OK.")
一般来说,将代码设置为“单元可测试”会更好。您是否可以根据
响应的值进行if检查,然后在需要时使用中断
退出for循环?我很难理解您想要实现什么。您正在显示的代码是单元测试还是要测试的代码?@Jylo我编辑了我的问题,您能检查一下吗?那个代码就是单元测试方法中的代码。@Jokab你能举个简单的例子吗?听起来你有真实的、可以工作的代码,你想做得更好。考虑到CoDeEvIEW.StAccExchange。com。谢谢你的代码,但是每次循环都是OK的时候,它给出一个OK消息,如果整个代码都是OK的话,我只想输入一个OK消息。@ EistNeSITNA,如果我理解正确的话:如果你发现一个错误,打印错误和退出循环。如果没有出现错误,也就是说,每个响应都正常,然后打印一次OK?是的,这是真的,但是如果循环执行100次,我在代码上打印了100次OK,如果结果正常,我只想打印一次?@Estinasitna这个答案对你有帮助吗?如果是这样,考虑接受答案。