play手把手教你创建一个博客项目10完整的应用程序测试
- 格式:doc
- 大小:763.00 KB
- 文档页数:11
blog模板在当今社交媒体飞速发展的时代,越来越多的人开始意识到建立个人博客的重要性。
但是,许多人往往被繁琐的排版以及鲜活的创意所击垮。
因此,选择一款简单易用的Blog模板,可以轻松架起自己的博客。
一、简介Blog模板是一套博客界面的标准模板。
类似于Word中的模板,它能够帮助用户快速搭建一个成熟的博客界面,包括排版、配色、字体等等都已经设定好,用户只需填充自己的内容即可。
此外,许多Blog模板都支持自定义主题,方便用户个性化定制。
二、优点1.简单易用:Blog模板一般都是可视化操作,即所见即所得。
排版、字体、颜色等等一切都可以通过简单的鼠标拖拽、点击来实现。
2.美观大方:许多Blog模板都有专业的设计师操刀,用心设计,让博客整体视觉效果更为出众,也让读者更易于聚焦到内容本身上。
3.快速上手:相较于自己写代码定制博客界面,Blog模板可以省去学习CSS、HTML等等专业知识的时间,方便用户快速入门博客运营。
4.灵活性:除了简单易用的优点之外,许多Blog模板支持自定义主题,用户可以按照自己的需求进行个性化的定制,包括博客主题、列表样式、字体颜色等。
三、选择您可以从以下几个方面考虑选择一款合适的Blog模板。
1.适应性:优秀的Blog模板应该适应各种屏幕尺寸,包括手机端和电脑端,以及各种浏览器。
2.功能性:如果您计划将博客作为商业利润或是展示专业技能的平台,那么就需要选择一款支持各种功能的Blog模板。
3.速度:博客访问速度是关键的,如果访问速度过慢,则容易减少访问量。
因此,选用速度快的模板也是很重要的。
4.支持与更新:一般来说,可以选择开源或是付费的Blog模板。
并且,选择一款能够提供更新支持的模板更为优秀。
四、结语总的来说,选择Blog模板可以极大地简化建立博客的工作,并且许多模板都具有简单易用、美观大方、快速上手和灵活性等优点。
但是,在选择之前需要考虑适应性、功能性、速度和支持与更新等因素。
项目自动化测试题及答案一、选择题1. 自动化测试的主要目的是提高测试的______。
A. 覆盖率B. 效率C. 准确性D. 可重复性答案:B2. 在自动化测试中,以下哪个不是测试框架的组成部分?A. 测试用例B. 测试执行器C. 测试报告生成器D. 测试环境配置答案:D3. 以下哪个工具不是用于自动化测试的?A. SeleniumB. JUnitC. GitD. TestNG答案:C二、填空题4. 自动化测试可以减少人为错误,提高测试的______和______。
答案:效率;准确性5. 持续集成(CI)是自动化测试中的一个重要概念,它指的是在软件开发过程中,______将代码合并到主分支。
答案:开发者三、简答题6. 请简述自动化测试与手动测试的主要区别。
答案:自动化测试是指使用专门的软件工具来执行测试用例的过程,它可以在无需人工干预的情况下重复执行测试。
手动测试则需要测试人员亲自执行测试用例,通常用于探索性测试或自动化难以实现的测试场景。
自动化测试可以提高测试效率,减少重复性劳动,而手动测试则更灵活,能够适应复杂多变的测试需求。
7. 描述自动化测试在软件开发生命周期中的一般应用流程。
答案:自动化测试通常在软件开发生命周期的早期阶段开始规划,包括测试策略的制定、测试环境的搭建和测试框架的选择。
在开发过程中,随着功能模块的完成,相应的自动化测试脚本也会被开发和执行。
在持续集成过程中,自动化测试会定期运行,以确保新代码的集成不会引入缺陷。
在软件发布前,自动化测试可以帮助快速验证软件的质量。
四、论述题8. 论述为什么自动化测试不能完全取代手动测试,并提出在实际工作中如何平衡两者的使用。
答案:尽管自动化测试具有高效率和可重复性的优点,但它并不能完全取代手动测试。
自动化测试通常适用于回归测试和大量重复性测试,但对于探索性测试、用户界面测试和一些需要创造性思维的测试场景,手动测试更为合适。
此外,自动化测试可能无法覆盖所有的测试场景,特别是在面对复杂逻辑和动态内容时。
前端自学练习题一、HTML练习题HTML(超文本标记语言)是构建Web页面的基础语言。
通过以下练习,您可以巩固自己的HTML知识和技能。
1. 创建一个HTML文件,并设置文档类型声明。
2. 在文件中添加一个标题,标题内容为“前端自学练习题”。
3. 在文件中创建一个段落,并向其中添加一些文本,介绍前端学习的重要性。
4. 创建一个无序列表,并至少添加三个列表项,列举前端开发所需的技能。
5. 在列表项中添加一个链接,链接到您最喜欢的学习资源网站。
6. 创建一个表格,包含四列和三行,可以是任意内容。
7. 在表格中添加一个单元格合并的行和列,使其成为表格的标题。
8. 在文件中插入一张图片,并设置图片的宽度和高度。
9. 创建一个表单,并包含文本输入框、复选框和提交按钮。
10. 使用HTML元素设置页面的背景颜色为您喜欢的颜色。
二、CSS练习题CSS(层叠样式表)用于美化和布局网页。
通过以下练习,您可以提升自己的CSS技能。
1. 为HTML练习题中的标题设置自定义样式,包括字体颜色和字体大小。
2. 为段落设置背景颜色和边框样式。
3. 为列表项设置不同的背景颜色,并修改列表项的文本样式。
4. 使用CSS选择器为特定的表格单元格设置样式。
5. 修改链接的样式,包括鼠标悬停时的效果,使用伪类选择器。
6. 创建一个包含多个不同样式的CSS类,并应用到HTML文件的不同元素上。
7. 使用CSS盒模型设置表单输入元素的边框样式和内边距。
8. 创建一个包含多个网页部分的页面布局,并使用CSS分别对其进行样式设置。
9. 使用CSS3属性和效果来增加页面的动态效果,比如过渡和动画。
10. 使用媒体查询为不同屏幕尺寸和设备应用不同的样式。
三、JavaScript练习题JavaScript是一种用于为网页添加动态效果和交互性的脚本语言。
通过以下练习,您可以提高自己的JavaScript编程能力。
1. 在HTML文件中添加一个按钮,并使用JavaScript编写一个函数,在按钮点击时显示一个弹出框。
11.部署到生产环境是时候结束博客引擎项目了,让我们用很少的几个通用步骤把play应用程序部署到生产环境中。
定义一个框架ID我们可能会把应用程序部署到不同的计算机(服务器),而不是用于开发的本地PC,因此,我们需要不同的play安装信息。
play允许我们为每个已经安装的play框架分配一个不同的框架ID,然后在同一个application.conf文件里管理不同的配置信息,假如我们将server01用作生产环境下的应用程序主机。
一旦play框架安装到服务器上后,那么就让我们用下面的命令为这个框架定义一个框架ID:$ play id并指定server01作为id的值,OK,接下来我们就可以在yabe的配置文件里定义特定的keys,仅仅当应用程序运行在服务器上时才会使用这个keys。
设置应用程序为PROD模式第一个专用于服务器部署的配置key就是application.mode属性。
到目前为止,我们已经使用DEV模式,以允许play热加载和热编译java源文件,并且在错误发生时显示详细的错误信息。
在PROD模式下,play将在启动时编译所有的java 源文件和模板,而且不再检测代码是否有修改。
在yabe/conf/application.conf文件里作如下定义:%server01.application.mode=PROD现在,当你在服务器上运行yabe应用程序时,程序就会自动启动到PROD模式。
配置MySQL数据库服务器对于生产环境来说,我们将使用一个MySQL数据库服务器来代替内存式的H2数据库,play自带了MySQL的JDBC驱动,因此我们不需要安装任何东西。
在yabe/conf/application.conf里编辑数据库配置项:%server01.db=mysql:root:secret@yabe现在我们就可以对Hibeanate进行微调,以管理数据库。
当java模型对象修改后,让Hibernate自动更新数据库结构时,这非常有用。
怎样写博客许多网友在百度知道上问,怎样做博客,怎样写博客?他们的意思一是怎样开博客,二是如何发博客文章、充实自己博客的内容。
怎样开通博客就不说了,怎样写博客,就是如何发文,如何添加日志。
老早以前在没有电脑,不知博客时,大家都把心里话写在了记事本上,如今会用电脑会写博客的人越来越多,大家都把记事本改为了博客屋,跟大家一起来分享。
那么怎样来做好自己的博客呢?博客里的发文、写日志也不仅仅是发布文章,它还包括发图片,加视频实际上就是发文章、放图片和视频博客里有这么几项组成:“博客”(有的叫“博文” ,有的叫“日志”)“相册”“音乐”有的还有“播客”。
如何发博文在你注册有了博客,登录后,点“博客”或“日志”,有“写博文”“发日志”“写新文章”等提示,进入后你就可尽情地写博客。
发博文主要包括发文章、发图片、发视频。
发文章。
登录后,进入您的博客,点击“发博文”(或“发新文章”“发日志”)按钮。
进入到文章编辑页面,输入文章的标题和内容。
输入完毕之后,在相应栏目中填上你要发表的文章的系统分类和我的日志分类点击“发博文”按钮就可以将文章发布了。
写文章最好先写到文档,或记事本里。
在文档或记事本里先编辑好,需要发表博文时,只要复制粘贴就好了。
做好后,别忘了点击“发表日志”或“发表文章”。
有许多实用的编辑功能,您可以对博文进行排版与美化。
点击“切换到更多功能”还可以使用更加丰富的编辑功能。
发图片。
进入到您的博客后,进入发博文页面,点击“插入图片”。
可以从您的电脑里上传图片,从相册添加图片,引用网络图片。
从您的电脑里上传图片:点击“浏览”按钮选择您需要上传的图片,点击“添加”后,照片开始上传。
图片上传成功后,点击“插入图片”即可将其加入到博文中。
从相册添加图片:勾选后,选择“相册”插入图片“按钮。
引用网络图片:输入图片的地址,点击”添加“。
添加成功后,点击页面下方的“插入图片”。
发视频。
登录后,进入您的博客。
进入发博文页面,点击“插入视频”。
SoapUI中文教程SoapUI是一款用于测试和构建Web服务的开源工具。
它支持SOAP (Simple Object Access Protocol)和REST(Representational State Transfer)两种Web服务协议,并提供了一个直观和易于使用的图形界面来创建和执行测试用例。
下面是一个关于SoapUI的中文教程,帮助你快速入门和使用这个强大的测试工具。
第二步:创建一个新项目启动SoapUI后,点击左上角的“新建”按钮,选择“新建项目”来创建一个新项目。
在弹出的对话框中,输入项目的名称和Base URL,选择使用的协议(SOAP或REST),然后点击“确定”按钮。
第三步:创建一个测试套件在项目面板的左侧,你会看到一个叫做“Test Suites”的选项卡。
点击它,在弹出的对话框中点击“添加”按钮来创建一个新的测试套件。
输入测试套件的名称,然后点击“确定”按钮。
第四步:创建一个测试用例在测试套件选项卡下方,你会看到一个叫做“Test Cases”的选项卡。
点击它,在弹出的对话框中点击“添加”按钮来创建一个新的测试用例。
输入测试用例的名称,然后点击“确定”按钮。
第五步:添加测试步骤在测试用例选项卡下方,你会看到一个叫做“Test Steps”的选项卡。
点击它,在弹出的对话框中点击“添加”按钮来添加一个新的测试步骤。
根据你要测试的服务类型(SOAP或REST),选择对应的测试步骤类型。
对于SOAP服务,你可以选择“SOAP Request”测试步骤类型,然后在弹出对话框中输入请求的细节,如请求的操作、请求的消息和请求的终端。
对于REST服务,你可以选择“HTTP Request”测试步骤类型,然后在弹出对话框中输入请求的细节,如请求的方法、请求的URL和请求的头部。
第六步:运行测试用例在测试步骤选项卡下方,你会看到一个叫做“Run”的选项卡。
点击它,然后点击“运行”按钮来运行你的测试用例。
探索InstallShield——制作一个完整的应用程序安装实例夏翔01-8-1 下午03:01:20大家一定有过这样的经历,每当我们殚精竭虑为用户开发完一个系统之后往往都是派一名技术员到用户那里进行应用软件的安装,数据库的配置,这些看似简单的配置对一般用户来说可不是件容易做的事。
这不仅给那些喜欢力求完美的程序设计师带来一点遗憾外,而且也使我们设计出来的软件缺少一种安全可靠感。
如果我们在交给用户软件的时候能给他们一个象一些专业软件的安装程序,这不仅给用户留下了一个良好的第一印象,同时也节省了开发维护成本。
要说起制作安装程序的软件有许多,像InstallShield,CreateInstall,Easy Install,EasySetup,SetupBuilder等等,可以举出一大堆来。
但其中最为著名的当属InstallShield。
目前世界上绝大多数的商业软件的安装盘都是用她来完成,比如我们可能天天在使用的Norton AntiVirus 2000。
InstallShield之所以很流行也许是因为程序员可以在通过编写脚本语言方便的进行Windows应用程序的注册表修改、ODBC配置等复杂的操作,以及她本身提供了一些相当智能化的功能。
下面,就本人在实际开发中的一些所得和大家一起探讨,文中如有任何不妥之处还请同行们给予指教。
在讲述到数据库配置的一系列问题是以目前最常用的ODBC接口为基础,文中用到的实例是在WIN98系统中,InstallShield用的是Professional 6.21下开发和调试的,其中的应用程序实例用的PowerBuilder 7.0下开发的演示程序。
第一步:快速体验首先,我们可以来快速体验一下用InstallShield制作的安装程序是什么样的。
当然,我不可能详细到怎样建立一个项目之类的问题,有关这方面的内容还请看InstallShield的入门教材。
第二步:;InstallShield初探首先,用Project Wizard建立一个新的项目,取名Demo,同时在对话框中选择所有的选项,并且在语言选择中选择Chinese(PRC)和English,即简体中文和英文支持。
怎么制定测试任务例子1. 测试任务:测试手机应用的登录功能- 测试目标:验证用户能够成功登录手机应用- 测试步骤:1. 打开手机应用并进入登录页面2. 输入正确的用户名和密码3. 点击登录按钮4. 验证是否成功登录,页面是否跳转到用户首页5. 退出应用,重新打开应用,验证是否自动登录成功2. 测试任务:测试电子商务网站的购物车功能- 测试目标:验证用户能够成功添加商品到购物车,并进行结算- 测试步骤:1. 打开电子商务网站并登录用户账号2. 浏览商品页面,点击添加到购物车按钮3. 验证商品是否成功添加到购物车4. 进入购物车页面,验证商品数量是否正确5. 点击结算按钮,进入订单结算页面6. 输入收货地址和支付方式,点击确认支付按钮7. 验证订单是否成功生成,页面是否跳转到订单详情页面3. 测试任务:测试社交媒体平台的发布功能- 测试目标:验证用户能够成功发布帖子或动态- 测试步骤:1. 打开社交媒体平台并登录用户账号2. 进入发布帖子或动态的页面3. 输入内容和选择附件(如图片、视频等)4. 点击发布按钮5. 验证帖子或动态是否成功发布,页面是否跳转到用户首页6. 浏览用户首页,验证发布的内容是否正确显示4. 测试任务:测试音乐播放器的播放功能- 测试目标:验证用户能够成功播放音乐文件- 测试步骤:1. 打开音乐播放器应用2. 浏览音乐库,选择一首音乐文件3. 点击播放按钮4. 验证音乐是否成功播放,播放控制按钮是否正确显示5. 点击暂停按钮,验证音乐是否暂停播放6. 点击停止按钮,验证音乐是否停止播放5. 测试任务:测试电子邮件客户端的发送邮件功能- 测试目标:验证用户能够成功发送邮件- 测试步骤:1. 打开电子邮件客户端并登录用户账号2. 点击新建邮件按钮3. 输入收件人、主题和邮件内容4. 点击发送按钮5. 验证邮件是否成功发送,是否收到发送成功的提示6. 测试任务:测试地图导航应用的路线规划功能- 测试目标:验证用户能够成功规划导航路线- 测试步骤:1. 打开地图导航应用并输入起始位置和目的地2. 点击规划路线按钮3. 验证是否成功规划出导航路线,地图是否正确显示4. 点击导航开始按钮,验证导航功能是否正常工作7. 测试任务:测试在线学习平台的课程学习功能- 测试目标:验证用户能够成功学习在线课程- 测试步骤:1. 打开在线学习平台并登录用户账号2. 进入课程列表页面,选择一门课程3. 点击开始学习按钮4. 验证课程视频是否能够正常播放,课程内容是否正确显示5. 完成课程学习,验证学习进度是否正确记录8. 测试任务:测试天气预报应用的查询功能- 测试目标:验证用户能够成功查询天气预报信息- 测试步骤:1. 打开天气预报应用2. 输入要查询的城市名称3. 点击查询按钮4. 验证天气信息是否正确显示,如温度、湿度、风力等5. 切换查询城市,验证是否能够成功查询不同城市的天气预报9. 测试任务:测试健身应用的运动记录功能- 测试目标:验证用户能够成功记录运动数据- 测试步骤:1. 打开健身应用并登录用户账号2. 进入运动记录页面,选择一种运动类型3. 开始运动,记录运动时间和距离4. 停止运动,验证运动数据是否正确记录5. 查看历史记录,验证之前的运动数据是否正确显示10. 测试任务:测试新闻阅读应用的新闻浏览功能- 测试目标:验证用户能够成功浏览新闻内容- 测试步骤:1. 打开新闻阅读应用2. 浏览新闻列表,选择一篇新闻3. 点击新闻标题进入新闻详情页面4. 验证新闻内容是否正确显示,包括标题、作者、发布时间等。
博客注册步骤一、选择博客平台在进行博客注册之前,首先需要选择一个合适的博客平台。
市面上有很多知名的博客平台,如WordPress、Blogger、CSDN等。
根据个人需求和喜好,选择一个适合自己的博客平台,点击注册按钮开始注册。
二、填写注册信息在注册页面中,需要填写一些个人信息,如用户名、邮箱、密码等。
为了保护个人信息安全,密码需要设置为较为复杂的组合,包括字母、数字和特殊字符,并且要注意不要使用常用的密码,以免被破解。
三、验证邮箱完成注册信息填写后,系统会发送一封验证邮件到注册时填写的邮箱中。
打开邮箱,点击验证链接进行验证。
验证邮箱的目的是确保注册信息的真实性和有效性。
四、设置博客主题和布局成功验证邮箱后,可以进入博客平台的后台管理页面。
在这里,可以根据个人喜好选择适合自己的博客主题和布局。
一般来说,博客平台会提供一些模板供用户选择,也可以自定义设置。
五、编辑个人资料在博客的后台管理页面中,可以编辑个人资料,包括个人简介、头像等。
个人资料的完善可以让读者更好地了解博主,增加博客的亲和力和可信度。
六、编写第一篇博文注册博客的目的是为了分享自己的知识和经验,因此编写第一篇博文是非常重要的一步。
可以选择自己擅长的领域,或者写一些个人感悟和心得体会。
在编写博文时,要注意语句通顺,内容准确严谨,避免歧义或错误信息的出现。
七、发布博文完成博文的编写后,可以点击发布按钮将博文发布到个人博客页面上。
在发布之前,可以预览一下博文的效果,确保格式和排版没有问题。
八、分享博文博客的意义在于与他人分享,因此可以将博文分享到社交媒体平台,如微博、微信等。
通过分享,可以让更多人看到自己的博文,增加博客的曝光度和影响力。
九、互动交流博客不仅是个人的展示平台,也是与读者互动交流的渠道。
可以在博文下方开启评论功能,鼓励读者留下自己的意见和建议。
同时,也可以关注其他博主的博客,积极参与他们的讨论和互动,扩大自己的博客圈子。
十、持续更新博客的魅力在于持续更新。
play手把手教你创建一个博客项目10完整的应用程序测试现在,我们差不多终止了博客引擎的编码工作,但对项目来讲还没有完成,为了让我们的代码能够完全正确的工作,我们还需要对项目进行测试。
因此,我们之前差不多为yabe的模型层功能书写的单元测试,同时确信博客引擎的核心功能差不多进行了完好的测试,然而关于一个web应用程序来讲模型层只是其中的一部分,我们还需要确定web接口能否按预期的目标一样正常工作。
也确实是讲还需要测试yabe博客引擎的操纵器层,甚至需要对UI自身进行测试,比如我们的JavaScript代码。
测试操纵器部分Play提供了一种功能,确实是使用JUnit来直截了当测试应用程序的操纵器。
我们把这些测试叫做‘功能性测试’,这是因为我们打算测试web应用程序的完整功能。
差不多上,一个功能性测试将直截了当调用Play的ActionInvoker,和一个HTTP 要求相似。
因此我们需要给出一个HTTP方法、一个URI和多个HTTP参数。
Play 之后会路由这些要求,调用相应的action,同时回发到填写的响应(filled response)。
之后,你就能够对之进行分析,以检查响应内容是否你所预期的。
import org.junit.*;import play.test.*;import play.mvc.*;import play.mvc.Http.*;import models.*;public class ApplicationTest extends FunctionalTest {@Testpublic void testThatIndexPageWorks() {Response response = GET("/");assertIsOk(response);assertContentType("text/html", response);assertCharset("utf-8", response);}}现在看,它依旧一个标准的JUnit测试。
请注意,在那个地点我们使用Play的FunctionalTest超类,要紧是为了得到所有可用的工具。
那个测试只对应用程序的主页进行了测试(/ URL渲染一个HTML响应,以‘200 OK’作为状态代码)。
接下来,我们将检查治理区域(administration area)的安全工作能否正常工作。
在ApplicationTest.java里添加下面那个新测试:…@Testpublic void testAdminSecurity() {Response response = GET("/admin");assertStatus(302, response);assertHeaderEquals("Location", "/login", response);}…现在,用play test命令把yabe应用程序运行于测试模式,打开, 选择ApplicationTest.java测试并运行。
是绿色的吗?因此!通过这种方式,我们能够对所有的应用程序功能性进行测试,但把这用于测试一个基于html的web应用程序时,这并不是最好的方式。
关于我们的博客引擎项目来讲,直截了当在真实的扫瞄器进行测试可能会更好。
这确实是play 的‘Selenium tests’测试要干的事。
这种基于“功能性测试”的JUnit仍旧专门有用,专门是用于测试一个返回非html响应(比如JSON或XML)的Web services时。
书写Selenium测试代码Selenium是一个专用于测试web应用程序的测试工具。
那个工具最酷的确实是Selenium承诺我们在一个扫瞄器里直截了当运行测试套件,由于它使用的是真实的扫瞄器,因此,我们能够确定测试通过后,项目就能够在生产环境下完美的运行。
一个Selenium测试套件确实是一个专门的html文件。
HTML syntax required by Selenium必须使用的HTML语句比较单调(使用HTML表格元素进行数据格式化显示),好消息是play将使用play模板引擎和一系列支持简单Selenium表示语法的标签来关心你生成这些元素)。
使用模板最有味的特点是你全然不需要‘static scenarios’,同时能够使用play模板强大的功能(如循环、条件块)来书写更复杂的测试。
然而,你仍旧能够连续在模板里使用原始的HTML Selenium语法,假如需要的话,还能够不记得特定的Selenium标签。
假如你使用多个用于生成testscenarios(比如Selenium IDE)的Selenium工具中的一个,这将变得专门有味。
新创建的play应用程序的默认测试套件差不多包含了一个Selenium测试,打开yabe/test/Application.test.html文件:*{ You can use plain Selenium commands using the selenium tag }*#{selenium}// Open the home page, and check that no error occurredopen('/')waitForPageToLoad(1000)assertNotTitle('Application error')#{/selenium}运行那个测试应该可不能有任何咨询题。
它只打开了主页,并检测页面内容是否包含了‘Application error’文本。
然而,和任何复杂的测试一样,在导航到应用程序并进行测试之前,你需要设置一系列众所周知的数据,我们因此需要重用fixture概念,同时在开始测试之前使用yabe/test/data.yml文件,#{fixture /}标签导入这些测试数据:#{fixture delete:'all', load:'data.yml' /}#{selenium}// Open the home page, and check that no error occurredopen('/')waitForPageToLoad(1000)assertNotTitle('Application error')#{/selenium}另外一个重要的情况确实是我们要在测试启动时检查我们是否有一个最新的用户session。
那个session将储备在扫瞄器的临时cookie里,你应该在两个连续的测试运行操作期间保持同一个session,因此,让我们用一个特定的命令开始测试:#{fixture delete:'all', load:'data.yml' /}#{selenium}clearSession()// Open the home page, and check that no error occurredopen('/')waitForPageToLoad(1000)assertNotTitle('Application error')#{/selenium}运行那个测试,并确定没有错误发生,结果应该是绿色的。
接下来我们将书写专门专门的测试,测试打开主页后检查默认的博文是否显示出来:#{fixture delete:'all', load:'data.yml' /}#{selenium 'Check home page'}clearSession()// Open the home pageopen('/')// Check that the front post is presentassertTextPresent('About the model layer')assertTextPresent('by Bob, 14 Jun 09')assertTextPresent('2 comments , latest by Guest')assertTextPresent('It is the domain-specific representation')// Check older postsassertTextPresent('The MVC application')assertTextPresent('Just a test of YABE')#{/selenium}在那个地点,我们使用了标准的Selenium语法,它叫Selenese。
运行它(你能够运行于一个不同的扫瞄器窗口里)。
我们现在就能够测试评论窗体了,只需要添加一个 #{selenium /} 到模板里即可:#{selenium 'Test comments'}// Click on 'The MVC application post'clickAndWait('link=The MVC application')assertTextPresent('The MVC application')assertTextPresent('no comments')// Post a new commenttype('content', 'Hello')clickAndWait('css=input[type=submit]')// Should get an errorassertTextPresent('no comments')assertTextPresent('Author is required')type('author', 'Me')clickAndWait('css=input[type=submit]')// CheckassertTextPresent('Thanks for posting Me')assertTextPresent('1 comment')assertTextPresent('Hello')#{/selenium}再次才能,哦,失败了!那个地点有一个严峻的咨询题显现。