python - 如何使用Unittest在Python中编写内部类测试方法

标签 python tdd inner-classes python-unittest

在 Java 中进行单元测试时,通常有一个测试类,其中包含多个内部类,用于测试类的每个方法。每个内部类可以有多个测试方法来测试相关方法的特定功能。

我试图用 unittest 在 Python 中做同样的事情,但似乎内部类的方法没有执行。例如:

import unittest

class OuterTestClass(unittest.TestCase):

    print("start outer class")

    def test_should_do_something(self):

            self.assertTrue( True )

            print("outer method test completed")

    class InnerTestClass(unittest.TestCase):

        print("start inner class")

        def test_should_do_something(self):

            self.assertTrue( True )

            print("inner method test completed")



预期行为:
> start outer class
> start inner class
> inner method test completed
> outer method test completed

实际行为:
> start outer class
> start inner class
> outer method test completed

是否可以使用 unittest 执行内部类方法?

最佳答案

您可以在 OuterTestClass 中创建一个新的测试方法,以构建包含在 InnerTestClass 中的所有测试用例的套件。

class OuterTestClass(TestCase):

    print("start outer class")

    def test_should_do_something(self):

        self.assertTrue( True )

        print("outer method test completed")

    class InnerTestClass(TestCase):

        print("start inner class")

        def test_should_do_something(self):

            self.assertTrue( True )

            print("inner method test completed")

    def test_inner_test_class(self):
        suite = unittest.defaultTestLoader.loadTestsFromTestCase(self.InnerTestClass)
        unittest.TextTestRunner().run(suite)

关于python - 如何使用Unittest在Python中编写内部类测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56140684/

相关文章:

Python:如何在列表列表中添加 'find' 内容

python - 如何解决这个错误: module 'gensim' has no attribute 'models'

c# - 设置最小起订量并验证是否调用了方法

tdd - 用简单的术语解释 TDD

python - MAC | Python 脚本运行良好,在终端插入 Mysql 表但无法作为 Cron 作业运行 |苹果

python - Python 的关闭过程设置模块全局变量在哪里记录?

c# - 如何应用 TDD/BDD 方法从 C# 使用 Oracle 数据库中的数据创建 Excel 文件

java - 需要 ContentProvider 来访问 SharedPreferences

java - 实例化一个内部类

java - JDK、JRE 中的内部类、嵌套类、本地类和匿名类示例