在我的Python单元测试中(通过标准nosetests/unittest.TestCase)我在一个类中创建了一个进行选项解析的方法。我想写一个很好的单元测试例程,很好地练习它。在
更重要的是,下面有4个问题,我正在寻找一种最佳的方法来达到这个目的?在
from optparse import OptionParser
class Something(object):
def getOptionParser(self):
return OptionParser()
def parseMyOptions(self):
parser = self.getOptionParser()
parser.add_option('--debug', action='store_true', help='Run debug mode.')
parser.add_option('--logfile', default='log/logfile.log', help='what filename')
parser.add_option('--url', type='string', help='desired url')
(options, args) = parser.parse_args()
self.debug = options.debug
self.logfile = options.logfile
self.url = options.url
def main(self):
self.parseMyOptions()
class MockOptionParser(object):
def __init__(self):
self.url = None
self.debug = None
self.logfile = None
def add_option(self, *args, action=None, help=None, default=None):
pass
def parse_args(self):
pass
def error(self):
pass
class TestSomething(unittest.TestCase):
def test_something(self):
s = Something()
s.getOptionParser = MockOptionParser()
s.parseMyOptions()
assert True, "assert something useful?"
所以这里的问题是:
我能断言什么有用的东西?
如何在不复制OptionParser框架的情况下自动生成MockOptionParser?
注意,在MockOptionParser的add_选项中,我不处理'type'关键字,但我应该处理。我确信我不会预测OptionParser使用的所有方法和关键字参数并在MockOptionParser中实现它们。有没有更简单的方法?
用每个选项的自变量初始化MockOptionParser很难看。有没有办法做到这一点?
有没有一种简单的方法来验证所有的add\u option()变量(选项.调试,例如)用于设置类似自我调试?
目前没有回答
相关问题 更多 >
编程相关推荐