0

我是 Python 和单元测试的新手,因为我今天早上才开始研究它。我有一个具有多个键/对值的对象,并且其中一个键/对是另一个对象。

IE。

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 到测试函数吗?

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

4

1 回答 1

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”是什么意思,但你可以从另一个模块导入它来测试它。当你可以使用真实的东西时,为什么要模拟?

于 2017-08-01T02:53:09.737 回答