python-3.x pytest-ing一个没有参数的函数

bvjveswy  于 2022-12-30  发布在  Python
关注(0)|答案(1)|浏览(181)

我正在努力完成一门流行的在线python课程。在最后一个项目中,我被要求用pytest测试函数。然而,我的函数很简单,并且在输入到类对象Prime_Line之前会进行错误检查。有没有什么方法可以在下面这样的函数上运行pytest,而不必重写一大堆健壮、有效的代码,这样我就可以在上面运行测试呢?
例如:

def extrusion_calculation():
    """Calculates extrusion number

    Returns:
        e (float): extrusion distance
    """
    D = Prime_Line.nozzle_diameter
    W = Prime_Line.line_width_factor * D
    T = Prime_Line.layer_height
    L = Prime_Line.line_length

    e = ((math.pi * T**2) / 4 + T * W - T**2) * L
    return e
jrcvhitl

jrcvhitl1#

您可以使用Mock模块在测试模块中使用一个伪Prime_Line对象。在代码中应该是这样的:

import pytest
from unittest.mock import Mock
import math

def test_extrusion_calculation():
    # Create a mock object for Prime_Line
    Prime_Line = Mock()

    # Set the values for the mock object's attributes
    Prime_Line.nozzle_diameter = 0.4
    Prime_Line.line_width_factor = 0.7
    Prime_Line.layer_height = 0.2
    Prime_Line.line_length = 10

    # Call the function and assert the result is what you expect
    assert extrusion_calculation() == 4.76

相关问题