测试列表是否包含相同类型的“对象”python单元

2024-09-30 10:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个测试,检查函数的返回值,问题是函数返回一个元组列表,其中每个元组包含一个整数和一个对象。在

该对象具有浮点属性,因此我希望在那里使用assertalmostqual,但在列表中类似于“assertSameStructure”。在

所以在伪代码中我想做的是:

import unittest
class Test(unittest.TestCase):
    def test_foo(self):
        result = foo(data)
        expected_obj = Bar(23.3,12.1)
        self.assertSameStructure([0,expected_obj],result)
        self.assertAlmostEquals(expected_obj,result[0][1])

Tags: 对象函数selfobj列表属性foo整数
2条回答

有几个模块可以帮助验证模式,而不仅仅是测试特定的行为。下面是一个带有^{}的简单示例:

from schema import Schema

class Test(unittest.TestCase):
    def assertHasSchema(self, schema, obj):
        return Schema(*schema).validate(obj)

    def test_foo(self):
        result = foo(data)
        expected_obj = Bar(23.3,12.1)

        self.assertHasSchema([(int, Bar)], result)

        self.assertAlmostEquals(expected_obj, result[0][1])

如果你确定你只从测试中得到一个结果元组,你可以简单地测试

self.assertAlmostEquals([(0,expected_obj)], result)

伪代码中唯一缺少的是整数和对象周围的括号。在

或者,您可以通过运行isinstance(obj, tuple)等来实现assertSameStructure

相关问题 更多 >

    热门问题