在Python中对元类和内部类进行单元测试

3 投票
1 回答
1483 浏览
提问于 2025-04-16 23:03

我通常会对每个类进行单元测试,这没什么问题。不过在玩Python的时候,我遇到了一个在其他语言中没碰到过的问题,那就是元类和内部类。

假设我有一个类,它里面有一个内部类,同时还有一个元类,那么在这种情况下,单元测试应该怎么结构最合适呢?

一种方法是把这三者放在一个测试模块里一起测试,因为它们之间关系很紧密。但我觉得这样不太对。那么,我该怎么单独测试元类呢?是不是要在测试中创建一个使用这个元类的虚拟类呢?

大家有什么想法,欢迎在StackOverflow上分享!

1 个回答

3

你测试一个类的时候,就是在创建这个类的实例。你提到的“虚拟类”其实就是元类的一个实例,所以你应该这样来测试它。

关于测试内部类和外部类的问题——是的,我会把测试内部类的内容放在外部类的测试里。如果独立测试内部类是有意义的,那它为什么还要是内部类呢?任何内部类都应该在外部类的范围内才有意义。如果你真的要单独测试它,那你还是得模拟外部类的环境。

撰写回答