C#的讀取ini文件單元測試

\color{red}{為什么寫這個呢,因?yàn)橹白隽艘粋€modbus非洲,想做單元測試段誊,網(wǎng)上}
\color{red}{全是add的Assert斷言,當(dāng)然也有寫的好的,但是這種完全滿足我需}
\color{red}{要的沒有所以自己借鑒了網(wǎng)上的資料懂从,自己摸索出來了一套ini解析}
多的也不說了授段,直接上代碼,如果對于基礎(chǔ)的斷言什么不了解可以看我之前的C/C++單元測試文章番甩。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Runtime.InteropServices;
using System.IO;
using System.Text;

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]

        public void TestMethod1()
        {
            
            string FilePath = @"這里寫你自己的ini文件地址";
            string Section = "Number";
            string Key = "number";
            string KeyOfSampleName = "Input";
            string KeyOfSampleName1 = "Output";

            int thenum = GetPrivateProfileInt(Section, Key, 0, FilePath);
            for (int index = 1; index <= thenum; index++)
            {
                //解析編號
                string ExamStr = index.ToString();

                //解析字符串Intput后面的內(nèi)容
                string s = Read(ExamStr, KeyOfSampleName, "", FilePath);
                string[] condition = { " " };
                //如果在拆分時不需要包含空字符串侵贵,則可以使用 StringSplitOptions.RemoveEmptyEntries 選項(xiàng)
                //例如在上例中將 StringSplitOptions.None 更改成 StringSplitOptions.RemoveEmptyEntries
                string[] result = s.Split(condition, StringSplitOptions.None);//以空格拆分
                byte[] byteArray = new byte[result.Length];
                for (int i = 0; i < result.Length; i++)
                {
                    //將16進(jìn)制的string轉(zhuǎn)換為byte
                    byteArray[i] = byte.Parse(result[i], System.Globalization.NumberStyles.HexNumber);
                }

                //解析字符串Output后面的內(nèi)容
                string output = Read(ExamStr, KeyOfSampleName1, "", FilePath);
                string[] resultOutput = output.Split(condition, StringSplitOptions.None);
                byte[] byteArray1 = new byte[resultOutput.Length];
                for (int i = 0; i < resultOutput.Length; i++)
                {
                    byteArray1[i] = byte.Parse(resultOutput[i],System.Globalization.NumberStyles.HexNumber);
                }

                //斷言
                Assert.IsTrue(true);

            }
        }



        /// <summary>
        /// 為INI文件中指定的節(jié)點(diǎn)取得整數(shù)
        /// </summary>
        /// <param name="lpAppName">欲在其中查找關(guān)鍵字的節(jié)點(diǎn)名稱</param>
        /// <param name="lpKeyName">欲獲取的項(xiàng)名</param>
        /// <param name="nDefault">指定的項(xiàng)沒有找到時返回的默認(rèn)值</param>
        /// <param name="lpFileName">INI文件完整路徑</param>
        /// <returns></returns>
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileInt(string lpAppName, string lpKeyName, int nDefault, string lpFileName);

        /// <summary>
        /// 為INI文件中指定的節(jié)點(diǎn)取得字符串
        /// </summary>
        /// <param name="lpAppName">欲在其中查找關(guān)鍵字的節(jié)點(diǎn)名稱</param>
        /// <param name="lpKeyName">欲獲取的項(xiàng)名</param>
        /// <param name="lpDefault">指定的項(xiàng)沒有找到時返回的默認(rèn)值</param>
        /// <param name="lpReturnedString">指定一個字串緩沖區(qū),長度至少為nSize</param>
        /// <param name="nSize">指定裝載到lpReturnedString緩沖區(qū)的最大字符數(shù)量</param>
        /// <param name="lpFileName">INI文件完整路徑</param>
        /// <returns>復(fù)制到lpReturnedString緩沖區(qū)的字節(jié)數(shù)量缘薛,其中不包括那些NULL中止字符</returns>
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);

        /// <summary>
        /// 讀取INI文件值
        /// </summary>
        /// <param name="section">節(jié)點(diǎn)名</param>
        /// <param name="key">鍵</param>
        /// <param name="def">未取到值時返回的默認(rèn)值</param>
        /// <param name="filePath">INI文件完整路徑</param>
        /// <returns>讀取的值</returns>
        public static string Read(string section, string key, string def, string filePath)
        {
            StringBuilder sb = new StringBuilder(1024);
            GetPrivateProfileString(section, key, def, sb, 1024, filePath);
            string s = sb.ToString();
            return s;
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窍育,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宴胧,更是在濱河造成了極大的恐慌漱抓,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恕齐,死亡現(xiàn)場離奇詭異乞娄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)显歧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門仪或,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人士骤,你說我怎么就攤上這事溶其。” “怎么了敦间?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵瓶逃,是天一觀的道長。 經(jīng)常有香客問我廓块,道長厢绝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任带猴,我火速辦了婚禮昔汉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拴清。我一直安慰自己靶病,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布口予。 她就那樣靜靜地躺著娄周,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沪停。 梳的紋絲不亂的頭發(fā)上煤辨,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天裳涛,我揣著相機(jī)與錄音,去河邊找鬼众辨。 笑死端三,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鹃彻。 我是一名探鬼主播郊闯,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蛛株!你這毒婦竟也來了团赁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤泳挥,失蹤者是張志新(化名)和其女友劉穎然痊,沒想到半個月后至朗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屉符,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年锹引,在試婚紗的時候發(fā)現(xiàn)自己被綠了矗钟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡嫌变,死狀恐怖吨艇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腾啥,我是刑警寧澤东涡,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站倘待,受9級特大地震影響疮跑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜凸舵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一祖娘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啊奄,春花似錦渐苏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至庄新,卻和暖如春公黑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工凡蚜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留人断,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓朝蜘,卻偏偏與公主長得像恶迈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谱醇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容