Python单元测试比较列表值

时间:2014-07-29 03:37:13

标签: python unit-testing assertions

所以我目前正在尝试编写一个简单的测试,它只是将一个列表的值与另一个列表中的另一个列表进行比较。我对assertListEquals(a,b)很熟悉,但我可能会错误地使用它或者遗漏了某些东西。当我运行模块时,我绝对没有得到测试套件的响应。没有错误代码或任何东西。也许你们可以帮助我。

这是我的testsuite

from MyList import main
import unittest

class TestSuite(unittest.TestCase):



    def test_ValueContains(self):

        print('test')

        testList = [1,2,3]
        value = MyList
        self.assertListEqual(testList,value)


if __name__== "main":
            unittest.main()

这是MyList.py

def main():

    MyList = [1,2,3]

main()

我想要做的就是检查是否MyList == testList并在运行测试时获得'确定'。

抱歉,我是单位测试的新手

1 个答案:

答案 0 :(得分:1)

尝试修改代码:

def main():
    MyList = [1,2,3]
    return MyList

from MyList import main
import unittest

class TestSuite(unittest.TestCase):

    def test_ValueContains(self):

        print('test')

        testList = [1,2,3]
        value = main()
        self.assertListEqual(testList,value)

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

问题是你在没有存储值的情况下运行main方法。这可以通过返回值而不是简单地分配它来实现。

您还需要更改

底部的if语句
if __name__ == "main":

if __name__ == "__main__":

因为这是正确的命名约定。