我正在使用test.testEqual()在Runestone中进行项目。我使用Anaconda / Spyder控制台并将代码转换回Runestone。Python似乎不支持test.testEqual,因此我尝试在unittest框架下使用TestCase.assertEqual(first,second,msg)方法。我的代码抛出错误消息:TypeError:assertEqual()缺少1个必需的位置参数:“ second”
但正如我在下面的代码中所示,我在调用中同时包含了两个参数。我是单元测试的新手,所以不确定要解决此问题的地方吗?
从test.testEqual()切换到TestCase.assertEqual(first,second,msg)
from unittest import TestCase
def distance(x1, y1, x2, y2):
dx = x2 - x1
dy = y2 - y1
dsquared = dx**2 + dy**2
result = dsquared**0.5
return result
TestCase.assertEqual(distance(1,2, 1,2),0,msg='Equal')
TestCase.assertEqual(distance(1,2, 4,6), 5, msg='Equal')
TestCase.assertEqual(distance(0,0, 1,1), 2**0.5, msg='Equal')
我们希望这三个测试用例根据在Runestone控制台中的执行情况通过。
您使用的TestCase错误。而是创建一个测试类并继承unittest.TestCase。添加一个单独的测试,然后就可以了
class TestDistance(TestCase):
def test_distance(self):
self.assertEqual(distance(1, 2, 1, 2), 0, msg='Equal')
self.assertEqual(distance(1, 2, 4, 6), 5, msg='Equal')
self.assertEqual(distance(0, 0, 1, 1), 2 ** 0.5, msg='Equal')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句