Ho un parser di file e il mio manager mi ha detto che ho bisogno di creare test unitari per questo. Ecco il mio codice:
public class ParsedDetails
{
public int Id { get; set; }
public Guid Guid { get; set; }
public bool IsValid { get; set; }
}
public class CsvParser : IParser
{
private const int CsvColumns = 2;
private const char CsvSeparator = ';';
private const int IdColumnIndex = 0;
private const int GuidColumnIndex = 1;
private ParsedDetails ParseLine(string line)
{
ParsedCardDetails result = new ParsedCardDetails();
//validating and parsing data
return result;
}
public IEnumerable<ParsedCardDetails> Parse(string path)
{
if (string.IsNullOrWhiteSpace(path))
{
throw new ArgumentException("The path must not be empty");
}
if (!File.Exists(path))
{
throw new FileNotFoundException();
}
List<ParsedCardDetails> result = new List<ParsedCardDetails>();
var data = File.ReadAllLines(path);
foreach (var item in data)
{
var validationResult = ParseLine(item);
result.Add(validationResult);
}
return result;
}
}
Quindi, l'unica cosa che mi è passata per la mente è stato scrivere test unitari al metodo ParseLine
, ma questo è privato e non ho altre ragioni per renderlo pubblico e non c'è bisogno che io simuli la classe del parser . Hai qualche idea su come procedere?
Questa è la mia prima volta che scrivo i test delle unità.