テスト重要
ユーザが見て面白くない動作チェックのためのスクリプト、呼んでもいいけど読まれることを意識して書いているわけではないスクリプトはtestフォルダに、見て面白いスクリプトや簡単なサンプルになっているようなスクリプトはdemoに入れることにしよう。
過去のスクリプトを色々試していて問題が発覚。
PyUnit初体験。
suite = unittest.TestSuite()
[suite.addTest(XMLRPCTestCase(s)) for s in dir(XMLRPCTestCase) if s.find("test") == 0]
なんて書いてから
unittest.makeSuite(XMLRPCTestCase)でよかったと知る。
こういうのの説明を書く際に、細かい所から始めて楽なところへ進むのと、 楽なのを最初に教えてから細かいことを教えるのはどちらがいいのかなぁ。
書いたコード
import unittest
class XMLRPCTestCase(unittest.TestCase):
def setUp(self):
import xmlrpclib
self.server = xmlrpclib.Server('http://localhost:8080/RPC2')
self.grinedit = self.server.grinedit
def testAddVertexAndEdge(self):
"simple test"
g = self.grinedit
v1 = g.addVertex("BoxVertex", {"label": "Hello"})
v2 = g.addVertex("CircleVertex", {})
g.addEdge("LinearEdge", {"v1": v1, "v2": v2})
def testBatch(self):
self.grinedit.batch([
{"method": "addVertex", "params": ["CircleVertex", {}]},
{"method": "addVertex", "params": ["CircleVertex", {}]},
{"method": "addVertex", "params": ["CircleVertex", {}]}])
def suite():
return unittest.makeSuite(XMLRPCTestCase)
if __name__ == "__main__":
unittest.main()
簡単。問題は、目視しないと発見できないエラーが多いことだろうか。SWTからAWTに変えた際にCircleVertexの塗りが少しずれて隙間ができているとか。まぁ、全部のテストを自動化する方法を悩んでないで、簡単に自動化できるところから自動化するのが正しいのだろう。