如何使用 Unittest 在 Python 中编写内部 class 测试方法
How to write inner class test method in Python with Unittest
在 Java 中进行单元测试时,通常会有一个测试 class,其中包含要测试 class 的每个方法的多个内部 classes。每个内部 class 可以有多个测试方法来测试相关方法的特定功能。
我试图在 Python 中用 unittest 做同样的事情,但似乎没有执行内部 classes 的方法。例如:
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 执行内部 class 方法?
您可以在 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)
在 Java 中进行单元测试时,通常会有一个测试 class,其中包含要测试 class 的每个方法的多个内部 classes。每个内部 class 可以有多个测试方法来测试相关方法的特定功能。
我试图在 Python 中用 unittest 做同样的事情,但似乎没有执行内部 classes 的方法。例如:
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 执行内部 class 方法?
您可以在 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)