针对json字符串python运行测试
我目前正在尝试针对JSON字符串运行多个测试,但遇到了一些困难。
这是迄今为止我所拥有的。
class PinpyTests(jsonstr, campaign):
data = json.loads(jsonstr)
test = False
def dwellTest(self):
if self.data.get('dwellTime', None) is not None:
if self.data.get('dwellTime') >= self.campaign.needed_dwellTime:
# Result matches, dwell time test passed.
self.test = True
def proximityTest(self):
if self.data.get('proximity', None) is not None:
if self.data.get('proximity') == self.campaign.needed_proximity:
# Result matches, proximity passed.
self.test = True
基本上,我需要运行测试,只要它们存在于json字符串中。 所以如果在字符串中存在接近度,它将运行接近测试等等(可能有更多的测试,而不仅仅是这两个)
当两个测试都存在时,这个问题似乎就会出现,并且都需要返回真实。 如果他们都返回true,那么测试已经通过,并且类可以返回true,但是,如果停顿失败,并且邻近通过,我仍然需要失败,因为并非所有测试都通过。 (如果接近度通过)。 我对如何继续有些困惑。
对于初学者来说,你的课程定义不正确。 你可能想要的是一个__init__函数。 为了达到你想要的效果,我会建议添加一个testAll方法来检查你的json中的每个测试,然后运行该测试。
class PinpyTests(Object):
test = False
def __init__(self, jsonstr, campaign):
self.data = json.loads(jsonstr)
self.campaign = campaign
def testAll(self):
passed = True
if self.data.get('dwellTime') is not None:
passed = passed and self.dwellTest()
if self.data.get('proximity') is not None:
passed = passed and self.proximityTest()
return passed
def dwellTest(self):
if self.data.get('dwellTime') >= self.campaign.needed_dwellTime:
# Result matches, dwell time test passed.
return True
return False
def proximityTest(self):
if self.data.get('proximity') == self.campaign.needed_proximity:
# Result matches, proximity passed.
return True
return False
链接地址: http://www.djcxy.com/p/14217.html