我有下一个要用pytest
测试的类:
class Analysis(object, metaclass=abc.ABCMeta):
def __init__(self, filters, and_operator, filters_comb_type):
self.filters = filters
self.andOperator = and_operator
self.filtersComb_type = filters_comb_type
def _generate_defaultfilters_combination(self):
...
def _generate_allfilters_combinations(self):
...
def _check_filters(self, pattern_indexes, direction=None):
...
因此,我想为filters
、and_operator
和filters_comb_type
创建许多可能的Analysis(),使用一组不同的可能值
因此,我使用pytest编写了下一个代码:
import pytest
from src.statistical_analysis.analysis import Analysis, FiltersCombinationType
from tests.analysis_filters.mocks_analysis_filter import *
@pytest.fixture(params=[[],
[MockAllwaysTrueAnalysisFilter()],
[MockAllwaysFalseAnalysisFilter()],
[MockEvenTrueOddFalseAnalysisFilter()],
[MockAllwaysTrueAnalysisFilter(), MockAllwaysFalseAnalysisFilter(), MockAllwaysFalseAnalysisFilter()]])
def filters(request):
return request.param
@pytest.fixture(params=[True, False])
def and_operator(request):
return request.param
@pytest.fixture(params=[FiltersCombinationType.ONLY_DEFAULTS,
FiltersCombinationType.ONE_COMBINATION,
FiltersCombinationType.ALL_COMBINATIONS])
def filters_comb_type(request):
return request.param
@pytest.fixture
def analysis():
a = Analysis(filters, and_operator, filters_comb_type)
return a
因此,如果我已经很好地理解了analysis()函数,它将创建analysis()对象的所有可能组合
但是,当我想编写代码来测试分析类的3种方法时,我的问题就来了,因为如果我这样写:
def test_check_filters(analysis):
...
测试将使用fixture中创建的所有分析对象调用它,但是现在我如何将每个Analysis与check_filters()
方法的预期返回值进行比较呢
我想知道当我们想要测试一个类的方法时,哪一个是正确的方法,该方法创建了一个具有不同构造函数参数的类的许多实例
目前没有回答
相关问题 更多 >
编程相关推荐