我是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模拟为测试函数吗?
此变量是函数的本地变量,因此它不是全局变量。
答案 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”是什么意思,但你可以从其他模块导入它来测试它。为什么要嘲笑什么时候才能使用真品?