2.3. 产品和用例
产品
项目开始前,先来讲解下我们要开发的项目。
LaraZhihu 是我们整套课程构建的项目名称,这是一个允许提问题、写回答、做评论的系统。我们将以该项目为基础,来搭建项目的代码测试。通过此项目实战,我们将会学习如何使用一些测试工具,如 PHPUnit 和 Laravel 框架提供的测试套件,来编写单元测试以及集成测试。
本章节将简单从产品用例的角度上分析 Zhihu 的需求,好让大家对我们即将开发的项目有个基础的概念。
1. 角色
在我们的 LaraZhihu 里,会出现以下角色:
- 游客 —— 没有登录的用户;
- 用户 —— 注册用户,可以参与互动,例如提问题,写回答以及评论他人的问题和回答。
2. 信息结构
主要信息有:
- 用户 —— 模型名称 User;
- 问题 —— 模型名称 Question;
- 分类 —— 模型名称 Category;
- 回答 —— 模型名称 Answer;
- 评论 —— 模型名称 Comment。
3. 动作
角色和信息之间的互动称之为『动作』,动作主要有以下几个:
- 创建 Create;
- 查看 Read;
- 编辑 Update;
- 删除 Delete。
4. 用例
下面我们以不同角色来讲解 LaraZhihu 的用例。
4.1 游客
- 游客可以看到问题列表;
- 游客可以看到问题详情及其回答;
- 游客可以看到问题以及回答的评论。
4.2用户
4.2.1 对问题的操作
- 用户可以创建问题;
- 用户可以推荐、不推荐别人创建的问题;
- 用户可以关注创建的问题;
- 用户可以回答别人创建的问题;
- 用户可以评论别人创建的问题。
4.2.2 对回答的操作
- 用户可以赞同、不赞同别人的回答;
- 用户可以评论别人创建的回答。
4.2.3 对账户的操作
- 用户可以通过邮箱确认账户真实性;
- 用户可以上传头像图片。