【发布时间】:2019-08-22 07:27:38
【问题描述】:
我们正在努力将 Python 2 代码迁移到 Python 2&3 兼容代码。
我们在迁移过程中使用 futurize。
好吧,众所周知,在 Python 2&3 兼容性中存在很多 Unicode 和字节字符串问题。目前,我们只测试了简单英文字符(ASCII字符)的代码
我们如何对这些方法进行单元/功能测试,以检查在提供非 ASCII 字符作为输入时它不会中断?
def any_random_method(some_string):
# Some code
return some_return_string
我应该如何使用非 ASCII 字符对此进行单元测试。?一个代码 sn-p 会很有帮助。
p.s 我很困惑如何专门提供非 ascii 字符来启动单元测试。并且...我想用 Python 2 和 Python 3 对它进行单元测试。所以单元测试应该支持这两个版本来在测试时处理非ASCII字符
编辑:
- 测试具有多个 ascii 和非 ascii 字符的方法的一般做法是什么?
【问题讨论】:
-
unicode 对你有用吗?
-
你能详细说明一下这个问题吗?一点说明:该方法可以与其他端点以及 Python 的内置函数进行交互。因此,它可以同时包含字节和 Unicode。我们确保首先将每个字节字符串转换为 Unicode。最后,在输出时,我们确保它被编码为字节。如果您需要更多说明,请告诉我
-
你的方法参数的类型是什么,只有字符串?
-
不,我刚刚放了一个样本 sn-p。目标是测试任何使用字符串的方法。我可以将字符串作为参数传递,甚至可以模拟对象。问题在于如何在这些方法中提供非 ascii 字符。为了简化,假设我们有字符串参数并且想要测试。
标签: python