类型错误: 断言等于() 缺少 1 个必需的位置参数: 'second'



我正在使用test.testEqual((在Runestone中做一个项目。 我使用Anaconda/Spyder控制台并将代码翻译回Runestone。 Python似乎不支持test.testEqual,所以我尝试在unittest框架下使用TestCase.assertEqual(first,second,msg(方法。 我的代码抛出错误消息:类型错误: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。测试用例。添加一个单独的测试,然后您就可以开始了

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')

w33b 的方法工作得很好,但是,为了让你的方法工作(因为你非常接近(,你实际上只需要实例化TestCase类。

编写它的方式,你只是引用了类;但是,为了使用它的方法,类需要使用()进行实例化。

    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')

相关内容

  • 没有找到相关文章

最新更新