假设我有一个类:
class SqlUtil(object):
def __init__(self):
self.conn = pymysql.connect(......)
def method_1(self)
def method_2(self)
def method_3(self)
def method_4(self)
def method_5(self)
def method_6(self)
def method_7(self)
def method_8(self)
def method_9(self)
我需要测试这个类的每一个方法。那么问题来了,如果我的测试代码这样写,我每一个测试案例都需要实例化这个类,那么就要连接很多次数据库。
TestSql(object):
def test_method1(self):
ins = SqlUtil()
result = ins.method_1()
assert result == 1
如果其中的只有 method_1~7 需要使用数据库连接,method_8, method_9 实际上不需要数据库,我初始化被测试类,就白白浪费了数据库连接。
所以请问,这种场景下,是否只初始化 1 次被测试类会更好?
如果被测试的方法需要向数据库写入数据,那么 MySQL 的写入操作是 mock 一下更好,还是真的需要读取 MySQL 来确定数据是否真的写入成功了?