这是在 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 数组。
我有一个函数 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 数组。