【发布时间】:2020-05-25 06:01:57
【问题描述】:
我编写了一个函数,它返回一个 SQLAlchemy 数据类型以及该类型的参数。但是,当我尝试测试该函数时,unittest 告诉我函数返回的类型与我期望的类型不匹配。但是,它似乎向我展示了函数的返回值和我的预期结果确实匹配。
简化代码示例...
from sqlalchemy import Numeric
class TestStandardizeColDataTypes(unittest.TestCase):
def test_successful_numeric(self):
self.assertEqual(standardize_col_data_type('Dec'), Numeric(precision=12, scale=2))
这是单元测试结果显示的内容(通过 Pycharm)...
Numeric(precision=12, scale=2) != Numeric(precision=12, scale=2)
Expected :Numeric(precision=12, scale=2)
Actual :Numeric(precision=12, scale=2)
看起来它们确实是相等的。我尝试将测试类型更改为 AssertIs 和 AssertIsInstance,但没有任何运气。
关于我在这里缺少什么的任何想法?谢谢!
【问题讨论】:
-
你能添加你对
standardize_col_data_type()的实现吗 -
这与
unittest无关 -
@aws_apprentice 但是 unittest 不是没有像我预期的那样响应吗?
-
Numeric类可能没有定义__eq__所以unittest无法知道这两个对象是否实际上相同。你最好手动比较精度和比例。 -
@Ben 似乎已经有了包含必要信息的答案。将其标记为已接受:)
标签: python sqlalchemy python-3.7 python-unittest