这是在 python 中测试 pandas 数据帧的正确方法吗?

Is this the right way of testing a pandas dataframe in python?

我有一个函数 returns 一个包含行和列的数据框。 这是函数:app.py

def pandas_factory(colnames, rows):
    return pd.DataFrame(rows, columns=colnames)

这是我的单元测试用例:test_app.py

    def test_panda_fact(self):
        from dlp.dlp import pandas_factory
        df1 = pd.DataFrame({'a': [1, 2], 'b': [3, 4]})
        with pytest.raises(TypeError) as er:
            mock_open = mock.mock_open(read_data=df1)
            with patch('dlp.dlp.pandas_factory', mock_open):
                obj = pandas_factory
            self.assertTrue(obj)

测试用例运行但我是否以正确的方式测试它?

下面是我将如何测试此功能的示例:

import pandas
import numpy as np

from dlp.dlp import pandas_factory

def test_type():
    df1 = pandas_factory(rows=np.array([[1, 2],[3, 4]]), colnames=['a', 'b'])
    assert isinstance(df1, pandas.core.frame.DataFrame)

def test_size():
    cols = np.random.randint(10, 100)
    length = np.random.randint(10, 100)
    data = np.zeros((length, cols))

    df = pandas_factory(rows=data, colnames=[str(i) for i in range(cols)])
    assert df.shape == (length, cols)

类似的东西。这里我假设 rows 是某种形式的数据,比如 numpy 数组。