python单元测试 - 如何测试函数本地JSON对象是否具有正确的键值对?

时间:2017-08-01 02:47:29

标签: python json unit-testing unittest2

我是Python和单元测试的新手,因为我刚刚开始研究它。我有一个对象,它有许多键/对值,以及其中一个键/对是另一个对象。

my_program.py

    def my_function(self):
        my_obj = {
            "someKey": 1234-5678,
            "locationId": self.location_id,
            "environment": self.environment_name,
            "metaData" : {
                "log_id": self.last_log_id,
                "satisfied": False 
            }
        }


tests_my_program.py

import unittest2
import mock

    def test_should_check__my_function__payload_obj_is_set(self):
        #code here to test the variable has all of those key/pair values

如何编写单元测试以确保此对象始终具有这些键/对值(someKey,locationId等)? 我的测试是在一个单独的python文件(test_my_program.py)中,所以我需要将my_obj模拟为测试函数吗?

此变量是函数的本地变量,因此它不是全局变量。

1 个答案:

答案 0 :(得分:2)

import unittest
from my_program import my_obj

class MyTest(unittest.TestCase):
    def test_the_thing(self):
        self.assertEqual(my_obj['key1']['key2'], 3)

if __name__ == '__main__':
    unittest.main()

如果您只是想知道该值是否为真,请使用self.assertTrue(my_obj['key1']['key2'])self.assertFalse

我不确定“mock my_obj”是什么意思,但你可以从其他模块导入它来测试它。为什么要嘲笑什么时候才能使用真品?