在学习LearnPythonTheHardway的练习52时,我需要编写web.py服务器的自动化测试代码。 在app.py中,我只是放了函数:
app = web.application(urls, globals())
if web.config.get('_session') is None:
store = web.session.DiskStore('sessions')
init = {'room': None, 'count': 100}
session = web.session.Session(app, store, initializer=init)
web.config._session = session
else:
session = web.config._session
class count:
def GET(self):
print 'session', session
session.count += 1
return session.count
在app_test.py中,如何初始化会话以测试应用程序的状态? 以下代码无法正常运行。 session.count不是我想要的51,但总是101。
session.count = 50
resp = app.request("/count")
assert_equal(resp.data, "51")
答案 0 :(得分:0)
来自zhihu.com(中国的quora对口),我得到了一个决议。
只需从web.input()获取值,即可在app.py中设置初始状态。在app_test.py代码中,使用request(“/ count?XX = XX”)来传输初始状态以测试各种情况。
class count:
def GET(self):
initcount = web.input(i='')
if init != '':
session.count = int(initcount)
session.count += 1
return session.count
并在test.py中:
resp = app.request("/initcount?i=50")
assert_equal(resp.data, "51")