亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當調試器說它們相等時,為什么我的assert.areequal會失?。?/h1>

這個單元測試應該通過,但我不明白為什么沒有通過。該代碼在我的主控制器中運行,所以我知道它確實有效。但我覺得它在我的單元測試中的評估有所不同。我嘗試過各種其他斷言,但錯誤的布爾值除外。我不想進行錯誤的比較。    [TestMethod]    public void DownloadFileNames()    {        // Arrange        string ftpBase = "myfiles.com/public/doc";        string fileName = "10408c";        Search model = new Search();        model.FileName = fileName;        //A string to hold the base FTP address:        Search searchResults = new Search();        List<string> fnl = new List<string>();        var uriBuilder = new UriBuilder();        // Act        uriBuilder.Scheme = "ftp";        uriBuilder.Host = ftpBase;        FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(uriBuilder.Uri);        reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;        FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();        Stream responseStream = response.GetResponseStream();        List<string> files = new List<string>();        StreamReader reader = new StreamReader(responseStream);        while (!reader.EndOfStream)            files.Add(reader.ReadLine());        reader.Close();        responseStream.Dispose();        //Loop through the resulting file names.        foreach (string folder in files)        {            if (folder.IndexOf(".") < 1)            {                var childDirectory = uriBuilder.Uri + folder + "/";                FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(childDirectory);                request.Method = WebRequestMethods.Ftp.ListDirectory;                response = (FtpWebResponse)request.GetResponse();                responseStream = response.GetResponseStream();                reader = new StreamReader(responseStream);                string result = reader.ReadToEnd();                reader.Close();我希望 fnl 和字符串匹配。但 Expected 給出了這個代碼?!邦A期的:。 ”我懷疑我錯過了一些東西,但由于我在單元測試方面仍然處于綠色狀態,所以我不知道我錯過了什么。如果您沒有什么建設性的意見,請轉達任何意見。我一直在尋找我的問題的答案,但我發現的任何內容似乎都與我的問題無關,不足以提供任何幫助。
查看完整描述

1 回答

?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

fnl是一個字符串列表(即:)List<string>,而另一個只是一個原始的String


鑒于所顯示的代碼,這兩個完全不同的對象不可能匹配


假設列表僅包含一個字符串,則僅使用列表中的索引


//...


Assert.AreEqual(fnl[0], "ftp://myfiles.com/public/doc/cor/10408c.dat");

只是為了可讀性


//...


string expected = "ftp://myfiles.com/public/doc/cor/10408c.dat";

string actual = fnl[0];


Assert.AreEqual(expected, actual);


查看完整回答
反對 回復 2023-09-24
  • 1 回答
  • 0 關注
  • 115 瀏覽

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號