【问题标题】:Using Python's unittest module to test return values from instance methods of a class [duplicate]使用 Python 的 unittest 模块测试类的实例方法的返回值 [重复]
【发布时间】:2018-09-11 02:37:47
【问题描述】:
class Solution:

    def addNums(self, a, b):
        return a + b

test1 = Solution()   
test1.addNums(5, 6)

以上是我的课!用一个简单的 add 方法。

基本上,我要做的是为算法和数据结构/编程面试做准备,在那里我为每个输入创建实例并想为实例编写单元测试..

这是我在下面尝试过的:

import unittest

class TestSolution(unittest.TestCase):

    def test_addNums(self):
        example = Solution()  
        self.assertEqual(example.addNums(9, 10), 19)


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

不知道该怎么做,如果我运行上面的代码,我会收到以下错误消息:

----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute '/Users/abhishekbabuji/Library/Jupyter/runtime/kernel-eb5f1d39-4880-49a7-9355-bbddc95464ff'

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (errors=1)
An exception has occurred, use %tb to see the full traceback.

SystemExit: True

我希望能够测试Solution 类的实例方法的返回值,在本例中为addNums(self, a, b)

【问题讨论】:

    标签: python python-3.x unit-testing oop python-unittest


    【解决方案1】:

    运行以下代码:

    import unittest
    
    class Solution:
    
        def addNums(self, a, b):
            return a + b
    
    
    class TestSolution(unittest.TestCase):
    
        def test_addNums(self):
            example = Solution()  
            self.assertEqual(example.addNums(9, 10), 19)
    
    
    if __name__ == '__main__':
        unittest.main()
    

    产生

    .
    
    ----------------------------------------------------------------------
    Ran 1 test in 0.000s
    
    OK
    

    编辑:以下内容应该适用于 jupyter。

    import unittest
    
    class Solution:
    
        def addNums(self, a, b):
            return a + b
    
    
    class TestSolution(unittest.TestCase):
    
        def test_addNums(self):
            example = Solution()  
            self.assertEqual(example.addNums(9, 10), 19)
    
    
    if __name__ == '__main__':
        unittest.main(argv=['ignored', '-v'], exit=False)
    

    【讨论】:

    • 你是在 Jupyter Notebook 中运行的吗?
    • 我使用的是原始 python。
    • 我认为 [this]([medium.com/@vladbezden/…) 是怎么回事。
    • 是的!你说的对!我将自己的问题标记为重复!谢啦。在这里,投赞成票
    • 更新了代码。刚刚在jupyter上试过。似乎有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多