« 日記 |Main| 日記 »

« フォーマットに関する考察 | log | YAMLベースの新しいフォーマット »

テスト重要

ユーザが見て面白くない動作チェックのためのスクリプト、呼んでもいいけど読まれることを意識して書いているわけではないスクリプトは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の塗りが少しずれて隙間ができているとか。まぁ、全部のテストを自動化する方法を悩んでないで、簡単に自動化できるところから自動化するのが正しいのだろう。

トラックバック(Trackback)

Trackback URL: http://www.nishiohirokazu.org/mt/mt-tb.cgi/392

ご意見・ご感想をお送りください(フィードバック)

(フィードバックはメールで送信され、基本的に表示されませんが、内容によっては公開させていただくこともございます。ご了承ください。Your comment doesn't appear the page immediately. If the comment has value to other people, it will be put on the page or subsequent entries. Thank you.)

上の情報は、いずれも未記入でかまいません。 All of above questions are optional.