假设我有一个ServA
用 python 编写的 Web 服务,我想编写一些单元测试。
ServA
做了几件事(具有不同的视图),但所有视图都会产生类似的请求日志。
这些测试应该检查ServA
不同情况下的日志,所以这些单元测试有很多重复的代码(日志的结构总是一样的)。
我的想法是编写一个通用函数来避免代码重复,我发现另一个问题可以解决在 unittest 类中创建通用方法的问题。
但是现在如果我有另一个 Web 服务ServB
和另一组测试并且我需要做同样的事情怎么办?
有没有办法重用泛型函数?
我是否应该简单地使用检查日志的方法创建一个测试类,如下所示:
class MyMetaTestClass(unittest.TestCase):
def check_logs(self, log_list, **kwargs):
#several self.assertEqual
然后 ServA 和 ServB 的测试继承这个类,如下所示:
class TestServA(MyMetaTestClass):
def test_log1(self):
logs = extract_the_logs()
self.check_logs(logs, log_1=1, log2='foo')
还有另一种(更好的)方法吗?