| |
comp.lang.python |
>> I think I would rewrite the current unit-testing >> # Let's write reusable code, and unit test it. >> I believe I've still kept it to 13 lines. > I approve this change, although in a sense, it's > FWIW I'm in the minority (I think) of people that http://codespeak.net/py/dist/test.html I've heard good things about it, but haven't gotten around to trying it def test_answer(): STeVe
> --- Steven Bethard <steven.beth...@gmail.com> wrote:
>> example to use the
>> standard library unittest module::
>> def add_money(amounts):
>> # do arithmetic in pennies so as not to
>> accumulate float errors
>> pennies = sum([round(int(amount * 100)) for
>> amount in amounts])
>> return float(pennies / 100.0)
>> import unittest
>> class TestAddMoney(unittest.TestCase):
>> def test_float_errors(self):
>> self.failUnlessEqual(add_money([0.13,
>> 0.02]), 0.15)
>> self.failUnlessEqual(add_money([100.01,
>> 99.99]), 200)
>> self.failUnlessEqual(add_money([0,
>> -13.00, 13.00]), 0)
>> if __name__ == '__main__':
>> unittest.main()
> harder for a Python newbie, because it introduces
> inheritance a little earlier than I would have liked.
> prefer roll-your-own testing, but I don't want to
> argue that, because I think it mostly comes down to
> personal preference.
yet. Here's a two-line test suite from the page above:
assert 42 == 43