使用python测试实例属性

时间:2013-05-27 15:27:57

标签: python unit-testing beautifulsoup

我正在编写单元测试,以确定在解析器对象实例化期间是否正确设置了属性。不幸的是,我能想到的唯一方法是使用self.assertTrue(p.soup)  我暂时没有挂起任何python,但这似乎不是一个非常明确的方法来检查实例属性是否正确设置。关于如何改进它的任何想法?

这是我的测试类:

class ParserTest(unittest.TestCase):

    def setUp(self):
        self.uris = ctd.Url().return_urls()
        self.uri = self.uris['test']

    def test_create_soup(self):
        p = ctd.Parser(self.uri)
        self.assertTrue(p.soup)

if __name__ == '__main__':
    unittest.main()
    # suite = unittest.TestLoader().loadTestsFromTestCase(UrlTest)
    unittest.TextTestRunner(verbosity=2).run(suite)

这是我正在测试的Parser类

class Parser():

    def __init__(self, uri):
        self.uri = uri
        self.soup = self.createSoup()

    def createSoup(self):
        htmlPage = urlopen(self.uri)
        htmlText = htmlPage.read()
        self.soup = BeautifulSoup(htmlText)
        return BeautifulSoup(htmlText)

在过去的几年里,我遇到了不受单元测试的坏人,所以我对这个话题还不太了解。任何有用的资源都可以用来深入解释Python中单元测试的深入解释。我看一下标准的库单元测试文档,但这确实没有多大帮助......

1 个答案:

答案 0 :(得分:1)

如果p.soup属性需要是BeautifulSoup的实例,则可以明确check其类型

self.assertIsInstance(p.soup, BeautifulSoup)