unit test for a printing method
Scott David Daniels
scott.daniels at acm.org
Mon Aug 28 14:36:34 EDT 2006
noro wrote:
> What is the proper way to test (using unit test) a method that print
> information?
> for example:
>
> def A(s):
> print '---'+s+'---'
>
> and i want to check that A("bla") really print out "---bla---"
>
> thanks
> amit
>
For silly module myprog.py:
def A(s):
print '---'+s+'---'
in test_myprog.py:
import unittest
from cStringIO import StringIO # or from StringIO ...
import sys
import myprog
class SomeIOTests(unittest.TestCase):
def setUp(self):
self.held, sys.stdout = sys.stdout, StringIO()
def test_trivialArg(self):
myprog.A('')
self.assertEqual(sys.stdout.getvalue(), '------\n')
def test_simpleArg(self):
myprog.A('simple')
self.assertEqual(sys.stdout.getvalue(), '---simple---\n')
def tearDown(self):
sys.stdout = self.held
if __name__ == '__main__':
unittest.main()
--Scott David Daniels
scott.daniels at acm.org
More information about the Python-list
mailing list