我目前正在尝试针对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则测试已经过去并且类可以返回true,但是,如果驻留失败,并且接近通过,我仍然需要它失败,因为并非所有测试都通过。 (接近使它通过)。对于如何继续,我有点困惑。
答案 0 :(得分:0)
首先,您的课程定义不正确。你可能想要的是一个__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