首页 > Java > java教程 > 正文

PlayFramework完整实现一个APP(四)

黄舟
发布: 2016-12-23 16:39:10
原创
1562人浏览过

上一篇最后出现的错误是因为断言 assertequals(1, post.count()); 出错,取到的post的数量不是1,运行test之前,表中有数据

可以添加以下方法,运行Test前清空数据

@Before
public void setup() {
Fixtures.deleteAll();
}

  

1.编写复杂的测试用例

编辑/test/data.yml 

# User(bob):
#   email: bob@Gmail.com
#   passWord: secret
#   fullname: Bob

内容替换为 http://play-framework.herokuapp.com/zh/files/data.yml

 

添加测试用例

     @Test
public void fullTest() {
Fixtures.loadModels("data.yml");

// Count things
assertEquals(2, User.count());
assertEquals(3, Post.count());
assertEquals(3, Comment.count());

// Try to connect as users
assertNotNull(User.connect("bob@gmail.com", "secret"));
assertNotNull(User.connect("jeff@gmail.com", "secret"));
assertNull(User.connect("jeff@gmail.com", "badpassword"));
assertNull(User.connect("tom@gmail.com", "secret"));

// Find all of Bob's posts
List<Post> bobPosts = Post.find("author.email", "bob@gmail.com")
.fetch();
assertEquals(2, bobPosts.size());

// Find all comments related to Bob's posts
List<Comment> bobComments = Comment.find("post.author.email",
"bob@gmail.com").fetch();
assertEquals(3, bobComments.size());

// Find the most recent post
Post frontPost = Post.find("order by postedAt desc").first();
assertNotNull(frontPost);
assertEquals("About the model layer", frontPost.title);

// Check that this post has two comments
assertEquals(2, frontPost.comments.size());

// Post a new comment
frontPost.addComment("Jim", "Hello guys");
assertEquals(3, frontPost.comments.size());
assertEquals(4, Comment.count());
}

  

关于如何使用 data.yml,可以参考 http://play-framework.herokuapp.com/zh/yaml

 

2.初始化数据

开始创建应用程序的第一个页面。这个页面就会显示最近的帖子,以及旧的文章的列表。

在开发第一个屏幕之前我们需要一件事。创建测试数据。将默认数据注入到博客的一个方法是加载文件在应用程序的加载时间。要做到这一点,我们将创建一个引导工作。

weenCompany闻名企业网站系统5.3.0 繁体中英文 UTF8
weenCompany闻名企业网站系统5.3.0 繁体中英文 UTF8

weenCompany闻名企业网站系统(免费开源)是一个功能强大, 使用简单的中英文企业智能建站系统, 您只需要一些基本的计算机知识就可以利用此系统完成中小型企业网站的建设; 是低成本企业网站架设方案之首选CMS系统, 也适合建设个人网站。weenCompany闻名企业网站系统功能:1. 程序代码简洁严谨, 整个系统程序仅2M左右大小.2. 中英文双语版共用一套网站程序, 双语页面实现自由切换.3

weenCompany闻名企业网站系统5.3.0 繁体中英文 UTF8 0
查看详情 weenCompany闻名企业网站系统5.3.0 繁体中英文 UTF8

创建Bootstrap.java

package models;

import play.*;
import play.jobs.*;
import play.test.*;

@OnapplicationStart
public class Bootstrap extends Job {
public void doJob() {
// Check if the database is empty
if (User.count() == 0) {
Fixtures.loadModels("initial-data.yml");
}
}
}

initial-data.yml 使用data.yml的内容,创建的默认数据

@OnApplicationStart 标识方法在应用程序启动时运行

 

3.开发首页

修改Application.java 的index()方法

public static void index() {
Post frontPost = Post.find("order by postedAt desc").first();
List<Post> olderPosts = Post.find("order by postedAt desc").from(1)
.fetch(10);
render(frontPost, olderPosts);
}

  

修改Application/index.html 

#{extends 'main.html' /}
#{set title:'Home' /}

#{if frontPost}
   <div class="post">
       <h2 class="post-title">
           <a href="#">${frontPost.title}</a>
       </h2>

       <div class="post-metadata">
           <span class="post-author">by ${frontPost.author.fullname}</span>
           <span class="post-data">by ${frontPost.postedAt.format('MMM dd')}</span>
           <span class="post-comments">
                | 
               ${frontPost.comments.size()?:'no'}
               comment${frontPost.comments.size().pluralize()}
               #{if frontPost.comments}
               , latest by ${frontPost.comments[0].author}
               #{/if}
           </span>
       </div>

       <div class="post-content">
           ${frontPost.content.nl2br()}
       </div>
   </div>

   #{if olderPosts.size()>1}
       <div class="older-posts">
           <h3>Older posts <span class="from">from this blog</span></h3>

           #{list items:olderPosts, as:'oldPost'}
               <div class="post">
                   <h2 class="post-title">
                       <a href="#">${oldPost.title}</a>
                   </h2>

                   <div class="post-metadata">
                       <span class="post-author">
                           by ${oldPost.author.fullname}
                       </span>
                       <span class="post-date">
                           ${oldPost.postedAt.format('dd MMM yy')}
                       </span>
                       <div class="post-comments">
                           ${oldPost.comments.size()?:'no'}
                           comment${oldPost.comments.size().pluralize()}
                           #{if oldPost.comments}
                           - latest by ${oldPost.comments[0].author}
                           #{/if}
                       </div>
                   </div>
               </div>
           #{/list}
       </div>
   #{/if}
#{/if}

#{else}
   <div class="empty">
       There is currently nothing to read here.
   </div>
#{/else}

  

4.打开站点 

210.png

 以上就是PlayFramework完整实现一个APP(四)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关标签:
app
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号