gpt4 book ai didi

Pytest测试是方法抽象

转载 作者:行者123 更新时间:2023-12-04 16:45:49 24 4
gpt4 key购买 nike

我有一个带有抽象方法的抽象基类。

从 abc 导入 ABC,抽象方法

class MyClass(ABC):

@abstractmethod
def my_method():
pass

我想测试如果我在不创建该方法的情况下创建抽象基类的子类是否会出错。

我的第一个方法是查看如果我在函数中创建子项是否会发生错误。但我完全没有收到任何错误。

from abstract_method import MyClass

def test_my_class_without_my_method_error():
class MyChildClass(MyClass):
def my_method_with_spelling_error():
print("do something")

有没有办法测试一个方法是否是抽象的?

最佳答案

你可以查看这个例子。

myabc.py

from abc import ABC, abstractmethod

class MyABC(ABC):
@abstractmethod
def my_method():
pass

测试.py

from myabc import *

def test_function():
class MyChild(MyABC):
def my_method_new():
pass
c = MyChild()

这会在 c = MyChild() 处引发错误(TypeError:无法使用抽象方法 my_method 实例化抽象类 MyChild)。这意味着在实例化该类之前不会出现错误。

关于Pytest测试是方法抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61319401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com