日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
這也是C#代碼嗎?代碼閱讀性進(jìn)階

沒有太多的羅嗦,代碼本身已經(jīng)足夠。如果,要添幾個(gè)標(biāo)簽的話就是: 中文化,流暢性接口(Fluent Interface),API.

只有幾點(diǎn)補(bǔ)充說明:

1。 這都是真實(shí)可運(yùn)行的代碼,請(qǐng)看測(cè)試狀態(tài): 點(diǎn)擊Login as guest

2。 測(cè)試使用Machine Specification, 重點(diǎn)是Establish部分。

3。僅僅使用于集成測(cè)試(用戶故事);不建議業(yè)務(wù)領(lǐng)域和單元測(cè)試使用。

4。這里只列出最終使用代碼(測(cè)試說明一切);避免細(xì)節(jié)/實(shí)現(xiàn)的干擾。實(shí)現(xiàn)請(qǐng)看: Examples.cs "一個(gè)“語(yǔ)法的實(shí)現(xiàn) ”要“語(yǔ)法實(shí)現(xiàn)

文章發(fā)布后,很多的評(píng)論,特作出以下解釋:

這一段代碼的技術(shù)重點(diǎn),首先是行為驅(qū)動(dòng)開發(fā)(BDD), 偏重于需求描述(測(cè)試用例),而輕編程能力。

第二個(gè)技術(shù)點(diǎn),流暢型接口, 對(duì)內(nèi)是功能封裝,對(duì)外是使用接口(API). 用Facade模式來看待,會(huì)更好理解。如果在功能實(shí)現(xiàn)內(nèi)部使用Facade當(dāng)然會(huì)頭痛。

最后,才是使用中文。即使,不用中文,前兩點(diǎn)也會(huì)很有用。

我是實(shí)踐派,不是學(xué)院派。這是我實(shí)際項(xiàng)目的真實(shí)代碼,不是為了裝酷。

得心應(yīng)手武器庫(kù)

MSpec

本文所涉及使用的工具, 見前文:我的.Net武器庫(kù) ------ 新.Net架構(gòu)必備工具列表

使用的視屏演示:

 
 
 
 
  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.作為.考區(qū)組考人.我想查看考試從而可以了解考試信息  
  15. {  
  16.     [Subject("考試"), Tags("集成測(cè)試", "用戶故事")]  
  17.     public class 當(dāng)瀏覽某考試界面 : CommandTestBase  
  18.     {         
  19.         private Establish that =  
  20.             () =>  
  21.             {  
  22.                 要.創(chuàng)建(示例.考區(qū).省直);  
  23.  
  24.                 要.創(chuàng)建(示例.考試定義.計(jì)算機(jī))  
  25.                     .添加科目(示例.科目.AutoCAD)  
  26.                     .添加科目(示例.科目.Windows2000)  
  27.                     .添加科目(示例.科目.WindowsExcel);  
  28.  
  29.                 要.創(chuàng)建(示例.考試.省直2012年1月計(jì)算機(jī)考試)  
  30.                     .設(shè)為電子化考試()  
  31.                     .設(shè)置考試起始時(shí)間(Date.Of(2012,1,1),Date.Of(2012,2,1))  
  32.                     .設(shè)置審核()  
  33.                     .設(shè)置考場(chǎng)容量(50)  
  34.                     .設(shè)置科目費(fèi)用(Money.of(100))  
  35.                     .添加科目(示例.科目.AutoCAD)  
  36.                     .添加科目(示例.科目.Windows2000)  
  37.                     .添加科目(示例.科目.WindowsExcel)  
  38.                     .添加個(gè)人信息定義(示例.個(gè)人信息定義.姓名)  
  39.                     .添加個(gè)人信息定義(示例.個(gè)人信息定義.性別)  
  40.                     .添加個(gè)人信息定義(示例.個(gè)人信息定義.身份證)  
  41.                     .添加考場(chǎng)(示例.考場(chǎng)信息定義.考場(chǎng)01)  
  42.                     .添加考場(chǎng)(示例.考場(chǎng)信息定義.考場(chǎng)02)  
  43.                     .添加考場(chǎng)(示例.考場(chǎng)信息定義.考場(chǎng)03); ;  
  44.  
  45.                 var exam_service = Container.get();  
  46.                 subject = new ExamDetailGet(exam_service);  
  47.                 ui.load_context_data(Keys.Context.ExamDate.with_value(示例.考試.省直2012年1月計(jì)算機(jī)考試));  
  48.             };  
  49.  
  50.         private Because of =  
  51.             () =>  
  52.             {  
  53.                 subject.process(ui);  
  54.                 result = ui.get_model(Views.DisplayExamDetail);  
  55.             };  
  56.  
  57.         private It 應(yīng)該顯示考試科目列表 =  
  58.             () => result.Subjects.Select(s=>s.Code)  
  59.                       .ShouldContainOnly(示例.科目.AutoCAD.Code, 示例.科目.Windows2000.Code, 示例.科目.WindowsExcel.Code);  
  60.  
  61.         private It 應(yīng)該顯示考試開始日期 =  
  62.             () => result.BeginDate.ShouldEqual(Date.Of(2012, 1, 1));  
  63.         private It 應(yīng)該顯示考試結(jié)束日期 =  
  64.             () => result.EndDate.ShouldEqual(Date.Of(2012, 2, 1));  
  65.  
  66.         private It 應(yīng)該顯示是否電子化考試 =  
  67.             () => result.IsElectronicExam.ShouldBeTrue();  
  68.         private It 應(yīng)該顯示是考試考場(chǎng)容量 =  
  69.             () => result.ExaminationRoomCapacity.ShouldEqual(50);  
  70.  
  71.         private It 應(yīng)該顯示是否考試報(bào)名需要審核 =  
  72.             () => result.NeedInspection.ShouldBeTrue();  
  73.         private It 應(yīng)該顯示考試默認(rèn)科目費(fèi)用 =  
  74.             () => result.DefaultCharge.ShouldEqual(Money.of(100));  
  75.  
  76.         private It 應(yīng)該顯示報(bào)考人員信息項(xiàng)目 =  
  77.             () => result.PersonalInfoDefs.ShouldContainOnly(示例.個(gè)人信息定義.姓名, 示例.個(gè)人信息定義.身份證, 示例.個(gè)人信息定義.性別);  
  78.  
  79.         private It 應(yīng)該顯示考試相關(guān)考場(chǎng)信息 =  
  80.             () => result.Scenes.ShouldContainOnly(示例.考場(chǎng)信息定義.考場(chǎng)01, 示例.考場(chǎng)信息定義.考場(chǎng)02, 示例.考場(chǎng)信息定義.考場(chǎng)03);  
  81.  
  82.         private static ExamDetailGet subject;  
  83.         private static ExamDetailDTO result;  
  84.     }  

網(wǎng)頁(yè)題目:這也是C#代碼嗎?代碼閱讀性進(jìn)階
網(wǎng)頁(yè)URL:http://m.5511xx.com/article/cdjigis.html