Pythonで小さなイテレータをプログラムしました。
class anything():
def __init__(self):
self.i=1
def __iter__(self):
return self
def next(self):
if self.i>100:
raise StopIteration
self.i=self.i+1
return self.i
Pythonのunittestを使用して、生成されたリストの値が偶数かどうかを確認したいと思います(Pythonでユニットのテストを学習するためにそれを行っています)。お気に入り:
def main()
for x in anything():
assert x%2==0
しかし、私はそれを達成する方法を知りません。オンラインでいくつかの資料を読みましたが、クラス内で単体テストを管理する方法を教える例はありません。
以下はテストの例です。ところで、あなたのクラスにはバグがあります。恐らく self.i=self.i+i
はself.i=self.i+1
#!/usr/bin/env python
# -*- Python -*-
"Unit test for Columnize"
import unittest
from it import anything
class TestI(unittest.TestCase):
def test_basic(self):
for x in anything():
if x % 2 == 0:
self.assertTrue(True, "Found value %d" % x)
return
self.assertTrue(False, "No even found in Anything")
if __name__ == '__main__':
unittest.main()