gpt4 book ai didi

Python 单元测试类型错误

转载 作者:行者123 更新时间:2023-11-30 21:57:49 24 4
gpt4 key购买 nike

尝试在 Python 中构建单元测试,但我收到此 TypeError,它表示它错过了所需的潜在参数。我已经尝试了一切,最终得到了这里的代码:

import unittest
from MyCosine import CosineSim, CosineDis

class TestMyCosine(unittest.TestCase):

x = [3.5 , 3 , 3.5 , 2.5 , 3]
y = [3.5 , 3 , 4 , 2.5 , 4.5]
result = 0.9865867

def testCosineSim(self, result, x, y):
self.x = x
self.y = y
self.result = result
self.assertEqual(CosineSim(x,y), result, "0.9865867" )

def testCosineDis(self, result, x, y):
self.x = x
self.y = y
self.result = result
self.assertEqual(CosineDis(x,y) , result, "0.9865867")


if __name__ == '__main__':
unittest.main(exit=False)

这是错误消息:

======================================================================
ERROR: testCosineDis (__main__.TestMyCosine)
----------------------------------------------------------------------
TypeError: testCosineDis() missing 3 required positional arguments: 'result', 'x', and 'y'

======================================================================
ERROR: testCosineSim (__main__.TestMyCosine)
----------------------------------------------------------------------
TypeError: testCosineSim() missing 3 required positional arguments: 'result', 'x', and 'y'

----------------------------------------------------------------------
Ran 2 tests in 0.000s

FAILED (errors=2)

这是实际功能之一:

def CosineDis(x,y):
result = 1 - distance.cosine(x, y)
return result

最佳答案

定义 x 的范围和使用 x 作为输入参数的范围不同。由于您似乎想对 x、y 和结果使用静态值,因此我们可以将它们放入 setUp() 中,单元测试将在调用任何测试方法之前检测并运行。

在手机上快速编辑(未测试):

import unittest
from MyCosine import CosineSim, CosineDis

class TestMyCosine(unittest.TestCase):
def setUp(self) :
self.x = [3.5 , 3 , 3.5 , 2.5 , 3]
self.y = [3.5 , 3 , 4 , 2.5 , 4.5]
self.result = 0.9865867

def testCosineSim(self):
self.assertEqual(CosineSim(self.x,self.y), self.result, "0.9865867" )

def testCosineDis(self):
self.assertEqual(CosineDis(self.x,self.y) , self.result, "0.9865867")


if __name__ == '__main__':
unittest.main(exit=False)

关于Python 单元测试类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55131484/

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