Я тестирую свое приложение на C#, которое анализирует CSV. Я на покрытие кода 94%, потому что я не могу заставить его провалить попробовать/поймать блоков ... Я использую CsvHelper из NuGet http://joshclose.github.io/CsvHelperFail try/catch block csv
public void ParseCsv([FromBody] string csvText)
{
var parseCsv = new XsvData(new[] { "\t", "," });
try
{
using (var reader = new XsvReader(new StringReader(csvText)))
{
parseCsv.Read(reader, headerExists: true);
}
}
catch (Exception)
{
var response = new HttpResponseMessage(HttpStatusCode.BadRequest)
{
Content = new StringContent("Unable to read CSV."),
ReasonPhrase = "Invalid CSV"
};
throw new HttpResponseException(response);
}
}
Я попытался прохождения наиболее непонятных строк Я мог думать к нему, но он делает это через это, и ошибки позже на в функции ..
[TestMethod]
//[ExpectedException(typeof(HttpResponseException))]
public void TestUploadCsv_UploadingCsvNonCsv()
{
const string csvText = "[email protected] [email protected] fjkqeqir%[email protected] ujewqh$phfuw \n hfwu- ihfq&if*[email protected] afuhwu- [email protected]";
var context = GetMyFakeEntityDatabase();
var controller = new MyController(context);
controller.ParseCsv(csvText);
}
После попытки/улов блоков, у меня есть раздел, который претворяет существует все заголовки, и он не работает, но для этого примера он должен быть неудачным во время чтения. Как заставить мой модульный тест сбой? Любая помощь приветствуется! Заранее спасибо.
+1 для проверки того, как код обрабатывает сбои. –
Вы можете передать 'null' для' csvText'. – juharr
@juharr Как это написано в настоящее время, это сработает, но это не очень общее решение. Что делать, если он хочет иметь разные коды статуса для пустой/пустой строки против недействительного синтаксиса. –