针对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

上一篇: running tests against a json string python

下一篇: .Net serialize object to custom JSON (sort of) format