小编Jak*_*ake的帖子

如何使用pytest确保正确创建对象?

我有一个以特定格式保存的文件,以及一个将根据文件中的数据创建对象的类.

我想通过测试对象中的每个属性来确保正确提取文件/字符串中的所有值.

这是我正在做的简化版本:

classlist.py

import re

class ClassList:
    def __init__(self, data):
        values = re.findall('name=(.*?)\$age=(.*?)\$', data)

        self.students = [Student(name, int(age)) for name, age in values]

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
Run Code Online (Sandbox Code Playgroud)

test_classlist.py

import pytest
from classlist import ClassList

def single_data():
    text = 'name=alex$age=20$'
    return ClassList(text)

def double_data():
    text = 'name=taylor$age=23$' \
           'name=morgan$age=25$' 
    return ClassList(text)


@pytest.mark.parametrize('classinfo, expected', [
        (single_data(), ['alex']),
        (double_data(), ['taylor', 'morgan'])
])
def test_name(classinfo, expected):
    result = [student.name for student in classinfo.students]

    assert result …
Run Code Online (Sandbox Code Playgroud)

python pytest python-3.x

5
推荐指数
1
解决办法
1158
查看次数

标签 统计

pytest ×1

python ×1

python-3.x ×1