StringIOを使用すればいけるらしい。
documentはこの辺り。
http://docs.python.jp/2.7/library/stringio.html
サンプルは以下の通り。
import unittest
import StringIO
import sys
class Hello:
@classmethod
def say(cls):
print "test",
@classmethod
def world(cls):
print "World"
class TestHello(unittest.TestCase):
def setUp(self):
dumout = StringIO.StringIO()
self.sysout = sys.stdout
sys.stdout = dumout
def testSay(self):
Hello.say()
sys.stdout.seek(0)
self.assertEqual("test",sys.stdout.getvalue())
def testWorld(self):
Hello.world()
sys.stdout.seek(0)
self.assertEqual("World\n",sys.stdout.getvalue())
def tearDown(self):
sys.stdout = self.sysout
if __name__ == "__main__":
unittest.main()