gpt4 book ai didi

python - 使用非 ASCII 字符测试 python 代码

转载 作者:行者123 更新时间:2023-12-01 07:22:52 25 4
gpt4 key购买 nike

我们正在努力将 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 字符进行单元测试?代码片段会很有帮助。

p.s 我对如何专门提供非 ascii 字符来启动单元测试感到非常困惑。并且...我想使用 Python 2 和 Python 3 对其进行单元测试。因此单元测试应该支持这两个版本来在测试时处理非 ASCII 字符

编辑:

  • 使用多个 ASCII 和非 ASCII 字符测试方法的一般做法是什么?

最佳答案

您可以使用:

# -*- coding: utf-8 -*-
import unittest


def func1(my_string):
# your code
pass


def func2(my_string):
pass


class TestNotBreakFunctions(unittest.TestCase):

def setUp(self):
self.string_utf8 = 'Όταν λείπει η γάτα, χορεύουν τα ποντίκια.'

def test_func1(self):
try:
func1(self.string_utf8)
except Exception as e:
self.assertTrue(False, e)

def test_func2(self):
try:
func2(self.string_utf8)
except Exception as e:
self.assertTrue(False, e)


if __name__ == '__main__':
unittest.main()

该示例基于这样的假设:您有一个 str 类型的参数,但您可以使用任何类型的参数,只需使用 try except

关于python - 使用非 ASCII 字符测试 python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57604108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com