新的测试框架
新的测试框架
如果你留意时间轴单元测试,你可能看到symfony最近已被完全改写。ob娱乐下载这是因为我们从simpletest很好,但有副作用功能测试执行时,我们自己的测试框架,石灰。
石灰lighweight比PHPUnit)或simpletest和有几个优点。首先,它发射测试文件在沙箱,以避免奇怪的每个测试文件运行之间的影响(我们无法解决的原因之一老symfony核心测试)。ob娱乐下载它还引入了一个新的sfBrowser
,sfTestBrowser
更重要的是sfDomCssSelectorBrowser
这允许您编写functionnal测试轻松。这不是向后兼容的但更强大的比旧的系统。哦,它保存在一个文件中,lime.php
,没有任何依赖。
所以,你可以保持你的单元测试编写的simpletest但functionnal测试依赖sfTestBrowser
类必须升级。
这是一个简单使用的新例子sfTestBrowser
类功能测试:
定义(“SF_ROOT_DIR”, realpath(目录名(__FILE__)。/…));定义(“SF_APP”,应用美元);定义(“SF_ENVIRONMENT”、“测试”);定义(“SF_DEBUG”,真正的);require_once (SF_ROOT_DIR.DIRECTORY_SEPARATOR‘应用’.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR。“配置”.DIRECTORY_SEPARATOR。' config . php ');$ b =新sfTestBrowser ();$ b - >初始化();/ /默认主页$ b - >获得(“/”)- > isStatusCode (200) - > isRequestParameter(“模块”,“违约”)- > isRequestParameter(“行动”、“指数”)- > checkResponseElement(“身体”,“恭喜你/我”);
如您所见,现在的浏览器有连贯接口。上面的代码是一样的:
$ b - > (“/”);$ b - > isStatusCode (200);$ b - > isRequestParameter(“模块”,“违约”);$ b - > isRequestParameter(“行动”、“指数”);$ b - > checkResponseElement(“身体”,“恭喜你/我”);
浏览器对象也给访问上下文后,为每个请求的响应- > get ()
或者一个- > post ()
。我们添加了快捷键测试请求参数或HTTP头信息:
$ b - > isRequestParameter(“模块”、“行动”);$ b - > isResponseHeader(“内容类型”、“text / html;charset = utf - 8 ');
新- > checkResponseElement ()
方法是最强大的新方法。它允许测试的响应内容CSS选择器。这里有一些例子(从sfDomCssSelectorTest
单元测试文件):
t - >是美元($ c - > gettext (h1),数组(测试页面)”——> gettext()需要一个CSS选择器作为它的第一个参数);t - >是美元($ c - > gettext(“#页脚”),数组(页脚)”——> gettext()支持搜索html元素id的);t - >是美元($ c - > gettext (“.header”),数组(“头”),“- > gettext()支持搜索html元素通过类名);t - >是美元($ c - > gettext (“div.header”),数组()”——> gettext()支持搜索html元素的类名称标记名称”);t - >是美元($ c - > gettext (ul李# mylist ul),数组('元素3 ','元素4 '),”——> gettext()支持搜索html元素由几个选择器”);t - >是美元($ c - > gettext (' ul #列表li[类~ = " foo1 "]”),数组(“链接”)、“- > gettext()支持检查属性词匹配的);t - >是美元($ c - > gettext (' ul #列表li[类^ = " foo1 "]”),数组(“链接”)、“- > gettext()开始支持检查属性的);t - >是美元($ c - > gettext (' ul #列表li[类$ = " foobar1 "] '),数组(“链接”)、“- > gettext()检查属性以支持”);t - >是美元($ c - > gettext (' ul #列表li[类* = " oba "] '),数组(“链接”)、“- > gettext()支持检查属性*’);
放松的阅读测试结果,石灰使用着色兼容系统。
直到我们为石灰添加文档,你欧宝官网下载app被邀请来看看测试(已经添加到框架测试/
文件夹)并使用它们作为一个例子,你自己的单元测试和功能测试。
最后一个词:当前的alpha版本不够稳定的用于生产(因此“α”属性)。我们感谢所有关于剩余的开发者,他们给我们发送反馈错误,但我们不警告普通用户升级他们的应用程序到0.8,直到我们标签至少β。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
我痛苦多少PHP4兼容性是阻碍我:(。我想在DOM中添加CSS选择也很快,我可以使用PHP5 HTML解析器。
警告:我将在来年做一些非常相似(SimpleTest2)。希望我偷走你所有的辛勤工作,)。
你的,马库斯
文件组只是不够近灵活…
我期待着使用这无论如何,似乎适合的目的。
问候
如果PHP 4中simpletest抱着你回来,PHPUnit)可能会是一个更安全的赌注。另外,PHPUnit)现在有硒(至少在CVS)的支持。