xxxxData
এক্স ইউনাইটে অনেকগুলি বৈশিষ্ট্য রয়েছে। PropertyData
বৈশিষ্ট্য উদাহরণস্বরূপ দেখুন ।
যে সম্পত্তি প্রত্যাবর্তন করে আপনি তা প্রয়োগ করতে পারেন IEnumerable<object[]>
। object[]
এই পদ্ধতিটি যে প্রতিটি উত্পন্ন করে তা আপনার [Theory]
পদ্ধতিতে একক কল করার জন্য প্যারামিটার হিসাবে "প্যাক করা" হবে ।
আরেকটি বিকল্প হ'ল ClassData
, এটি একই কাজ করে তবে বিভিন্ন শ্রেণি / নেমস্পেসের পরীক্ষার মধ্যে সহজেই 'জেনারেটরগুলি' ভাগ করে দেয় এবং বাস্তব পরীক্ষার পদ্ধতি থেকে 'ডেটা জেনারেটর'কে পৃথক করে।
এই উদাহরণগুলি দেখুন এখানে থেকে :
প্রপার্টিডাটা উদাহরণ
public class StringTests2
{
[Theory, PropertyData(nameof(SplitCountData))]
public void SplitCount(string input, int expectedCount)
{
var actualCount = input.Split(' ').Count();
Assert.Equal(expectedCount, actualCount);
}
public static IEnumerable<object[]> SplitCountData
{
get
{
return new[]
{
new object[] { "xUnit", 1 },
new object[] { "is fun", 2 },
new object[] { "to test with", 3 }
};
}
}
}
ক্লাসডাটা উদাহরণ
public class StringTests3
{
[Theory, ClassData(typeof(IndexOfData))]
public void IndexOf(string input, char letter, int expected)
{
var actual = input.IndexOf(letter);
Assert.Equal(expected, actual);
}
}
public class IndexOfData : IEnumerable<object[]>
{
private readonly List<object[]> _data = new List<object[]>
{
new object[] { "hello world", 'w', 6 },
new object[] { "goodnight moon", 'w', -1 }
};
public IEnumerator<object[]> GetEnumerator()
{ return _data.GetEnumerator(); }
IEnumerator IEnumerable.GetEnumerator()
{ return GetEnumerator(); }
}