程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 微型項目實踐(2):用測試驅動代碼生成

微型項目實踐(2):用測試驅動代碼生成

編輯:關於ASP.NET

上一篇文章中,我們分析了系統的兩個實體類,並且給出了對應的實體XML。今天我們來看看如何根據 這個XML進行代碼生成。

  1: <?xml version="1.0" encoding="utf-8" ?>
  2: <Entities xmlns="http://it.ouc.edu.cn/EntityDescription/V2">
  3:  <Entity title="日志" name="Blog" module="Blogs">
  4:   <Item title="標題" name="Title" type="text" require="true"/>
  5:   <Item title="內容" name="Content" type="longtext" require="false"/>
  6:   <Item title="所屬分類" name="BlogClass" type="entity" entityName="BlogClass" 

require="false"/>
  7:   <Item title="創建時間" name="CreateDateTime" type="datetime" 

require="true"/>
  8:   <Item title="更新時間" name="UpdateDateTime" type="datetime" 

require="true"/>
  9:  </Entity>
 10:  <Entity title="日志分類" name="BlogClass" module="Blogs">
 11:   <Item title="名稱" name="Name" type="text" require="true"/>
 12:   <Item title="描述" name="Description" type="text" require="false"/>
 13:  </Entity>
 14: </Entities>

這裡我們主要是生成兩種最重要的代碼,一是數據庫的建庫腳本,二是實體的CS類。

我們使用測試來驅動代碼生成,在項目DongBlog.Test中添加一個新的單元測試:Util.cs。對應的代 碼如下:

  1: using ...
 12: 
 13: namespace DongBlog.Test
 14: {
 15:   /// <summary>
 16:   /// 數據庫相關的工具方法
 17:   /// </summary>
 18:   [TestClass]
 19:   public class DatabaseUtil
 20:   {
 21:     /// <summary>
 22:     /// 構造建庫腳本
 23:     /// </summary>
 24:     [TestMethod, Description("構造建庫腳本")]
 25:     public void Util_CreateDatabaseScript()
 26:     {
 27:       var entities = getEntities();
 28:       string sqlText = MsSqlServerScriptBuilder.getSqlScript(entities);
 29: 
 30:       Debug.WriteLine("");
 31:       Debug.WriteLine("The following is the database creating script:");
 32:       Debug.WriteLine("=============================彪悍的分割線

==============================================================================");
 33:       Debug.WriteLine("");
 34:       Debug.WriteLine("");
 35:       Debug.WriteLine(sqlText);
 36:       Debug.WriteLine("");
 37:       Debug.WriteLine("");
 38:       Debug.WriteLine("=============================又見彪悍的分割線

==========================================================================");
 39:     }
 40: 
 41:     private Entity[] getEntities()
 42:     {
 43:       XmlDocument document = new XmlDocument();
 44:       document.Load(Gobal.EntityXmlFileName);
 45:       return EntityXmlParser.ParseXml(document);
 46:     }
 47:   }
 48: }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved