Учитывая этот код, я ожидал, что произойдет исключение, но System.Net.WebClient.UploadString возвращает пустую строку в result
.System.Net.WebClient не бросает ошибку во время UploadString на недопустимый URL?
Я, очевидно, что-то пропускаю, но что?
using System.Net;
using System.Text;
[TestClass()]
public class WebClientTests
{
[TestMethod()]
public void WebClientUploadStringToInvalidUrlTest()
{
var webClient = new WebClient { Encoding = Encoding.UTF8 };
var result = webClient.UploadString("{{foo-bar}}", "snafu");
Assert.IsTrue(string.IsNullOrEmpty(result));
}
[TestMethod()]
[ExpectedException(typeof(ArgumentNullException))]
public void WebClientUploadStringToNullUrlTest()
{
var webClient = new WebClient { Encoding = Encoding.UTF8 };
string url = null;
var result = webClient.UploadString(url, "snafu");
Assert.IsTrue(string.IsNullOrEmpty(result));
}
}
редактировать: в per suggestion по hanno добавлен тест null
, а также, и это бросает ArgumentNullException
, который я отчасти ожидал.
Просто для того, чтобы быть уверенным: этот тест проходит точно так же, как написано ?! Обновление: Это так. – usr
Согласно [MSDN] (http://msdn.microsoft.com/en-us/library/0645045y (v = vs.110) .aspx), он должен выдать исключение. Бросает ли он, если вы передаете null в метод? – Hanno
Интересно, что, если введен другой URL-адрес; возможно, эта форма в URI делает что-то странное? (try ...) –