我是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吗?
此变量是函数的局部变量,因此它不是全局变量。
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
我不确定您所说的"模拟my_obj"是什么意思,但您可以从其他模块导入它来测试它。当您可以使用真实的东西时,为什么要嘲笑?