Örnek olarak, dosya tabanlı bir dosya yerine akış tabanlı bir API kullanıyorsanız, yaşam çok daha kolaydır. Alay kullanma burada çok uygun değil, IMO; "protokol testi" yapmıyorsunuz - sadece bir veri kaynağı istiyorsunuz.
Ayrıca basit bir yardımcı yöntemdir aşırı yüklenmeye sağlayabilir:
public Result ParseXml(string file)
{
using (Stream stream = File.OpenRead(file))
{
return ParseXml(stream);
}
}
Yapabilirsin sonra yöntem makul güvenle değil testi - bu sonuçta, buna anlamlı mantığı vardır.
Şimdi olabilir Genellikle, sonra kodunda kodlanmış dize kullanarak Encoding.UTF8.GetBytes(xml)
arayarak ve ortaya çıkan bayt dizisi etrafında MemoryStream
bina ... ama tarafından akış tabanlı API ayrı veri dosyaları kullanmayı tercih testi benim test projemde. İçerik türünü "gömülü kaynak" olarak ayarlayın ve ardından test dosyasına bir akış elde etmek için Assembly.GetManifestResourceStream
kullanın.
Eğer bu gerçekten normal bir XML dosyası olsa da, gerçekten ayrıştırmayı kendiniz yapmak ister misiniz? Bunu çerçeveye bırakmak ve API'nizi DOM API, XML için LINQ veya XmlReader
açısından ifade etmek istememenizin bir nedeni var mı?
Yolun burada nasıl çalıştığı hakkında kafa karıştırıcı başka biri için, Şunun gibi bir şey gibi görünüyor: "Your.Project.Name.SubFolder.FileName.extension". – crush