<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      這也是C#代碼嗎 --- 代碼閱讀性進階:測試文檔化

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

      只有幾點補充說明:
      1。 這都是真實可運行的代碼,請看測試狀態(tài): 點擊Login as guest
      2。 測試使用Machine Specification, 重點是Establish部分。
      3。僅僅使用于集成測試(用戶故事);不建議業(yè)務(wù)領(lǐng)域和單元測試使用。
      4。這里只列出最終使用代碼(測試說明一切);避免細節(jié)/實現(xiàn)的干擾。實現(xiàn)請看: Examples.cs "一個“語法的實現(xiàn) ”要“語法實現(xiàn)

       

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

      • 這一段代碼的技術(shù)重點,首先是行為驅(qū)動開發(fā)(BDD), 偏重于需求描述(測試用例),而輕編程能力。
      • 第二個技術(shù)點,流暢型接口, 對內(nèi)是功能封裝,對外是使用接口(API). 用Facade模式來看待,會更好理解。如果在功能實現(xiàn)內(nèi)部使用Facade當(dāng)然會頭痛。
      • 最后,才是使用中文。即使,不用中文,前兩點也會很有用。
      • 我是實踐派,不是學(xué)院派。這是我實際項目的真實代碼,不是為了裝酷。

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

      • MSpec

       本文所涉及使用的工具, 見前文:我的.Net武器庫 ------ 新.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("集成測試", "用戶故事")]
      17     public class 當(dāng)瀏覽某考試界面 : CommandTestBase
      18     {       
      19         private Establish that =
      20             () =>
      21             {
      22                 要.創(chuàng)建(示例.考區(qū).省直);
      23 
      24                 要.創(chuàng)建(示例.考試定義.計算機)
      25                     .添加科目(示例.科目.AutoCAD)
      26                     .添加科目(示例.科目.Windows2000)
      27                     .添加科目(示例.科目.WindowsExcel);
      28 
      29                 要.創(chuàng)建(示例.考試.省直2012年1月計算機考試)
      30                     .設(shè)為電子化考試()
      31                     .設(shè)置考試起始時間(Date.Of(2012,1,1),Date.Of(2012,2,1))
      32                     .設(shè)置審核()
      33                     .設(shè)置考場容量(50)
      34                     .設(shè)置科目費用(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 應(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)該顯示是考試考場容量 =
      69             () => result.ExaminationRoomCapacity.ShouldEqual(50);
      70 
      71         private It 應(yīng)該顯示是否考試報名需要審核 =
      72             () => result.NeedInspection.ShouldBeTrue();
      73         private It 應(yīng)該顯示考試默認科目費用 =
      74             () => result.DefaultCharge.ShouldEqual(Money.of(100));
      75 
      76         private It 應(yīng)該顯示報考人員信息項目 =
      77             () => result.PersonalInfoDefs.ShouldContainOnly(示例.個人信息定義.姓名, 示例.個人信息定義.身份證, 示例.個人信息定義.性別);
      78 
      79         private It 應(yīng)該顯示考試相關(guān)考場信息 =
      80             () => result.Scenes.ShouldContainOnly(示例.考場信息定義.考場01, 示例.考場信息定義.考場02, 示例.考場信息定義.考場03);
      81 
      82         private static ExamDetailGet subject;
      83         private static ExamDetailDTO result;
      84     }
      85 }
      posted @ 2012-07-19 11:36  予沁安  閱讀(7358)  評論(79)    收藏  舉報
      主站蜘蛛池模板: 国产熟女50岁一区二区| 人妻中文字幕亚洲一区| 97在线精品视频免费| 国产真实野战在线视频| 国产欧美精品一区二区三区-老狼 真实单亲乱l仑对白视频 | 国产精品二区中文字幕| 伦理片午夜视频在线观看| 国产亚洲精品一区二区不卡| 狂躁女人双腿流白色液体| 在线精品国产中文字幕| 国产在线精品欧美日韩电影| 亚洲一区二区三区水蜜桃| 少妇又紧又色又爽又刺激视频| 国产精品久久国产精麻豆99网站| ww污污污网站在线看com| 国产不卡一区不卡二区| 国产人与禽zoz0性伦多活几年| 男女18禁啪啪无遮挡激烈网站| 国产欧洲欧洲久美女久久| 亚洲三区在线观看内射后入| 国产超碰无码最新上传| 亚洲一区二区三区在线播放无码| 精品国产中文字幕在线| 边添小泬边狠狠躁视频| 国产无遮挡性视频免费看| 99午夜精品亚洲一区二区| 无码精品人妻一区二区三李一桐 | 免费播放一区二区三区| 在线中文字幕国产一区| 国产午夜三级一区二区三| 国产av仑乱内谢| 国产偷国产偷亚洲综合av| 久久精品国产99久久六动漫| 亚洲一区在线成人av| 亚洲国产精品综合久久网络| 免费无码又爽又刺激高潮虎虎视频 | 久久精品波多野结衣| 亚洲性线免费观看视频成熟| 色一情一区二区三区四区| 男女啪啪高清无遮挡免费| 骚虎三级在线免费播放|