在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执行内部类方法?
答案 0 :(得分:1)
您可以在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)
答案 1 :(得分:0)
测试运行程序找不到内部类。他们为什么这样嵌套?它没有给你带来任何好处。只需使它们成为所有顶级测试类即可。