为什么 Python assertEqual 告诉我我缺少这个单元测试中的第二个参数?
Why is Python assertEqual telling me I'm missing the second argument in this unittest?
我目前正在测试 Python 中某些对象的构造,我就是无法克服这个令人恼火的错误。这是我的代码:
from unittest import TestCase
class TestEquals(TestCase):
def test_success(self):
self.assertEqual("string","string")
def main():
TestEquals.test_success(TestEquals)
if __name__ == "__main__":
main()
(在我的实际测试中,我正在启动一个对象来声明相等性,但我选择将其归结为两个相同的字符串,以进行抽象)
在我看来,仅在两个相同的字符串上调用 assertEqual 应该不会失败,但确实如此。
Traceback (most recent call last):
File "tests/ex.py", line 11, in <module>
main()
File "tests/ex.py", line 8, in main
TestEquals.test_success(TestEquals)
File "tests/ex.py", line 5, in test_success
self.assertEqual("string","string")
TypeError: assertEqual() missing 1 required positional argument: 'second'
我收到类型错误,提示我缺少第二个参数。也许我疯了,但对我来说确实看起来我包含了两个参数。
我很想知道我是不是在使用函数的方式上很笨,还是我在 unittest 库中遇到了一个罕见的错误。
提前致谢!
为了确定错误来自于我使用 assertEquals 函数的方式,而不是我的 class 实现,我尝试尽可能地减少错误。
我尝试了 with test_success(self):
语法但没有用。
我尝试提供 msg 参数,但我仍然得到相同的结果。
无需创建 main
方法。使用unittest的main方法。
import unittest
class TestEquals(unittest.TestCase):
def test_success(self):
self.assertEqual("string","string")
if __name__ == '__main__':
unittest.main()
输出:
.
----------------------------------------------------------------------
Ran 1 test in 0.009s
OK
我目前正在测试 Python 中某些对象的构造,我就是无法克服这个令人恼火的错误。这是我的代码:
from unittest import TestCase
class TestEquals(TestCase):
def test_success(self):
self.assertEqual("string","string")
def main():
TestEquals.test_success(TestEquals)
if __name__ == "__main__":
main()
(在我的实际测试中,我正在启动一个对象来声明相等性,但我选择将其归结为两个相同的字符串,以进行抽象) 在我看来,仅在两个相同的字符串上调用 assertEqual 应该不会失败,但确实如此。
Traceback (most recent call last):
File "tests/ex.py", line 11, in <module>
main()
File "tests/ex.py", line 8, in main
TestEquals.test_success(TestEquals)
File "tests/ex.py", line 5, in test_success
self.assertEqual("string","string")
TypeError: assertEqual() missing 1 required positional argument: 'second'
我收到类型错误,提示我缺少第二个参数。也许我疯了,但对我来说确实看起来我包含了两个参数。
我很想知道我是不是在使用函数的方式上很笨,还是我在 unittest 库中遇到了一个罕见的错误。
提前致谢!
为了确定错误来自于我使用 assertEquals 函数的方式,而不是我的 class 实现,我尝试尽可能地减少错误。
我尝试了 with test_success(self):
语法但没有用。
我尝试提供 msg 参数,但我仍然得到相同的结果。
无需创建 main
方法。使用unittest的main方法。
import unittest
class TestEquals(unittest.TestCase):
def test_success(self):
self.assertEqual("string","string")
if __name__ == '__main__':
unittest.main()
输出:
.
----------------------------------------------------------------------
Ran 1 test in 0.009s
OK