如何对这个lambda代码进行单元测试?

时间:2014-06-27 12:12:36

标签: python unit-testing lambda

说,我有类似下面的Python代码:

try:
    from fabulous.color import fg256
    format_info = lambda x: fg256(63, unicode(x, 'utf-8')).as_utf8
except ImportError:
    format_info = lambda x: '\033[1;30m' + x + '\033[0m'

我如何对此进行单元测试?

值得测试吗?

需要模拟import语句,以便切除两个分支。这非常简单 - 例如,模拟fg256会产生raise ImportError的副作用。

匹配返回的字符串具有正确的控制字符很好,但感觉很脆弱。

1 个答案:

答案 0 :(得分:0)

您想要测试的究竟是什么?你似乎在这里有两个无关的案例;

  • 导入失败
  • lambda返回正确的信息

检查不使用您的代码失败并不是您的责任;但是如果你想测试它(也许是因为这是有人在一个热门论坛上发布的代码),我会把它分成两个不同的测试。

我们不知道你的lambda应该返回什么,但从它的外观来看,它应该返回一个类似于你在except分支中指定的字符串的字符串?