Pytest测试是方法抽象
Pytest test is method abstract
我有一个抽象基础 class 和一个抽象方法。
从 abc 导入 ABC,抽象方法
class MyClass(ABC):
@abstractmethod
def my_method():
pass
我想测试一下,如果我在没有创建该方法的情况下创建抽象基础 class 的子项,是否会出现错误。
我的第一个方法是查看如果我在函数中创建子项是否会发生错误。但是我一点错误都没有。
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
test.py
from myabc import *
def test_function():
class MyChild(MyABC):
def my_method_new():
pass
c = MyChild()
这会在 c = MyChild()
处引发错误 (TypeError: Can't instantiate abstract class MyChild with abstract methods my_method
)。这意味着在实例化 class.
之前不会出现错误
我有一个抽象基础 class 和一个抽象方法。
从 abc 导入 ABC,抽象方法
class MyClass(ABC):
@abstractmethod
def my_method():
pass
我想测试一下,如果我在没有创建该方法的情况下创建抽象基础 class 的子项,是否会出现错误。
我的第一个方法是查看如果我在函数中创建子项是否会发生错误。但是我一点错误都没有。
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
test.py
from myabc import *
def test_function():
class MyChild(MyABC):
def my_method_new():
pass
c = MyChild()
这会在 c = MyChild()
处引发错误 (TypeError: Can't instantiate abstract class MyChild with abstract methods my_method
)。这意味着在实例化 class.