【发布时间】:2011-12-20 11:42:04
【问题描述】:
我正在尝试编写单元测试以确保我编写的各种装饰器的正确性。这是我正在尝试编写的代码的开头:
import unittest
from memoizer import Memoizer
from strategies.mru import MRU
@Memoizer(strategy=MRU(maxsize=10))
def fib(x):
if x < 2:
return 1
else:
return fib(x-1) + fib(x-2)
class TestMemoizer(unittest.TestCase):
def test_simple(self):
self.assertEqual(fib(0), 1)
self.assertEqual(fib(1), 1)
self.assertEqual(fib(10), 89)
if __name__ == '__main__':
unittest.main()
虽然这对我上面的 MRU 策略很有效,但我计划编写其他策略,在这种情况下,我需要以不同的方式使用 fib 函数进行装饰。 (回想一下,因为 fib 调用 fib,所以设置 fib2 = memoize(fib) 不会记住中间值,因此这不起作用。)测试其他装饰器的正确方法是什么?
【问题讨论】:
标签: python unit-testing decorator