我对Python中的单元测试非常陌生。我正在为一个非常小的方法编写一个单元测试。代码实现如下。但是如果我运行测试脚本,我会得到一个错误消息:
TypeError:
__init__()
missing 4 required positional arguments: 'x ,'y','z','w'
class get_result():
def __init__(self,x,y,z,w):
self.x=x
self.y=y
self.z=z
self.w=w
def generate_result(self):
curr_x= 90
dist= curr_x-self.x
return dist
import unittest
from sample import get_result
result = get_result()
class Test(unittest.TestCase):
def test_generate_result(self):
self.assertEqual(somevalue, result.generate_result())
result = get_result()
应该是result = get_result(xvalue,yvalue,zvalue,wvalue)
其中这些值==某个数字。或者按照PRMoureu的建议,可以在
__init__()
方法的声明中使它们成为可选参数。在您的
__init__
方法需要4个参数,如果没有提供,则会引发错误。在如果要支持可选位置参数,可以按如下方式定义init:
__init__(self, *args, **kwargs)
然后在函数内处理它们。请注意,如果没有提供,对象仍然会被创建,如果您不验证值的存在,您将在稍后的代码阶段遇到错误。您可以捕获此异常并打印更具可读性的错误:相关问题 更多 >
编程相关推荐