def insert_env(self, env):
"""Inserts a new environment into ENV_TABLE
Keyword arguments:
env -- name of environment to be inserted
"""
info = {}
# populate info dictionary
sql = (
"""INSERT INTO my_table (...) VALUES (...)""")
try:
DML(sql, info)
except oracleException as e:
logger.debug('dml {0} resulted in error {1}'.format(sql, e))
这里我有一个函数,它聚集info
字典并将值插入数据库的表中。 DML
是来自另一个函数的辅助方法,它已经存在了一段时间并且调用了oracle数据库,大部分数据库信息已经在该函数中进行了硬编码。我该如何对这个功能进行单元测试?我无法模拟数据库,因为帮助函数是硬编码的,可以访问我们的生产数据库。
答案 0 :(得分:1)
帮助功能DML
不是您正在测试的单元的一部分;模拟它。显然,您需要在insert_env
中进行测试的唯一方法是使用适当的参数调用DML
,并在DML
引发异常时使用记录器。
info
中的局部变量insert_env
永远不会在调用DML
后再次使用这一事实表明这不是完整函数。可能还有更多要测试,但不可能用所提供的信息说出来。
答案 1 :(得分:1)
首先使您的sql字符串成为全局常量,最好是在第二个文件中。然后模拟db调用。
<%= @user.first_name %>