没有太多的罗嗦,代码本身已经足够。如果,要添几个标签的话就是: 中文化,流畅性接口(Fluent Interface),API.
只有几点补充说明:
1。 这都是真实可运行的代码,请看测试状态:
点击Login as guest
2。 测试使用Machine Specification, 重点是Establish部分。
3。仅仅使用于集成测试(用户故事);不建议业务领域和单元测试使用。
4。这里只列出最终使用代码(测试说明一切);避免细节/实现的干扰。实现请看:
Examples.cs
"一个“语法的实现
”要“语法实现
文章发布后,很多的评论,特作出以下解释:
- 这一段代码的技术重点,首先是行为驱动开发(BDD), 偏重于需求描述(测试用例),而轻编程能力。
- 第二个技术点,流畅型接口, 对内是功能封装,对外是使用接口(API). 用Facade模式来看待,会更好理解。如果在功能实现内部使用Facade当然会头痛。
- 最后,才是使用中文。即使,不用中文,前两点也会很有用。
- 我是实践派,不是学院派。这是我实际项目的真实代码,不是为了装酷。
得心应手武器库:
本文所涉及使用的工具, 见前文:我的.Net武器库
------ 新.Net架构必备工具列表
使用的视屏演示:

1 using System.Linq;
2 using Machine.Specifications;
3 using Skight.Arch.Domain;
4 using Skight.Arch.Domain.Core.Containers;
5 using Skight.Arch.Domain.Extensions;
6 using Skight.Arch.UserStories.Helpers;
7 using Skight.ES.Register.Presentation;
8 using Skight.ES.Register.Presentation.Modal;
9 using Skight.ES.Register.Presentation.Web.Application;
10 using Skight.ES.Register.Presentation.Web.ExamDistrictAdmin;
11 using Skight.ES.Register.Services;
12 using Skight.ES.Register.UserStories.Helpers;
13
14 namespace Skight.ES.Register.UserStories.作为.考区组考人.我想查看考试从而可以了解考试信息
15 {
16 [Subject("考试"), Tags("集成测试", "用户故事")]
17 public class 当浏览某考试界面 : CommandTestBase
18 {
19 private Establish that =
20 () =>
21 {
22 要.创建(示例.考区.省直);
23
24 要.创建(示例.考试定义.计算机)
25 .添加科目(示例.科目.AutoCAD)
26 .添加科目(示例.科目.Windows2000)
27 .添加科目(示例.科目.WindowsExcel);
28
29 要.创建(示例.考试.省直2012年1月计算机考试)
30 .设为电子化考试()
31 .设置考试起始时间(Date.Of(2012,1,1),Date.Of(2012,2,1))
32 .设置审核()
33 .设置考场容量(50)
34 .设置科目费用(Money.of(100))
35 .添加科目(示例.科目.AutoCAD)
36 .添加科目(示例.科目.Windows2000)
37 .添加科目(示例.科目.WindowsExcel)
38 .添加个人信息定义(示例.个人信息定义.姓名)
39 .添加个人信息定义(示例.个人信息定义.性别)
40 .添加个人信息定义(示例.个人信息定义.身份证)
41 .添加考场(示例.考场信息定义.考场01)
42 .添加考场(示例.考场信息定义.考场02)
43 .添加考场(示例.考场信息定义.考场03); ;
44
45 var exam_service = Container.get<ExamService>();
46 subject = new ExamDetailGet(exam_service);
47 ui.load_context_data(Keys.Context.ExamDate.with_value(示例.考试.省直2012年1月计算机考试));
48 };
49
50 private Because of =
51 () =>
52 {
53 subject.process(ui);
54 result = ui.get_model<ExamDetailDTO>(Views.DisplayExamDetail);
55 };
56
57 private It 应该显示考试科目列表 =
58 () => result.Subjects.Select(s=>s.Code)
59 .ShouldContainOnly(示例.科目.AutoCAD.Code, 示例.科目.Windows2000.Code, 示例.科目.WindowsExcel.Code);
60
61 private It 应该显示考试开始日期 =
62 () => result.BeginDate.ShouldEqual(Date.Of(2012, 1, 1));
63 private It 应该显示考试结束日期 =
64 () => result.EndDate.ShouldEqual(Date.Of(2012, 2, 1));
65
66 private It 应该显示是否电子化考试 =
67 () => result.IsElectronicExam.ShouldBeTrue();
68 private It 应该显示是考试考场容量 =
69 () => result.ExaminationRoomCapacity.ShouldEqual(50);
70
71 private It 应该显示是否考试报名需要审核 =
72 () => result.NeedInspection.ShouldBeTrue();
73 private It 应该显示考试默认科目费用 =
74 () => result.DefaultCharge.ShouldEqual(Money.of(100));
75
76 private It 应该显示报考人员信息项目 =
77 () => result.PersonalInfoDefs.ShouldContainOnly(示例.个人信息定义.姓名, 示例.个人信息定义.身份证, 示例.个人信息定义.性别);
78
79 private It 应该显示考试相关考场信息 =
80 () => result.Scenes.ShouldContainOnly(示例.考场信息定义.考场01, 示例.考场信息定义.考场02, 示例.考场信息定义.考场03);
81
82 private static ExamDetailGet subject;
83 private static ExamDetailDTO result;
84 }
85 }
分享到:
相关推荐
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
此数据集包含有关出租车行程的详细信息,包括乘客人数、行程距离、付款类型、车费金额和行程时长。它可用于各种数据分析和机器学习应用程序,例如票价预测和乘车模式分析。
把代码放到Word中,通过开发工具——Visual Basic——插入模块,粘贴在里在,把在硅基流动中申请的API放到VBA代码中。在Word中,选择一个问题,运行这个DeepSeekV3的宏就可以实现在线问答
【毕业设计】java-springboot+vue机动车号牌管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
【毕业设计】java-springboot-vue交通管理在线服务系统的开发源码(完整前后端+mysql+说明文档+LunW).zip