मैं का उपयोग कर समानता के लिए दो निम्न वस्तुओं की तुलना करने में सक्षम होना चाहते हैं AutoFixture.SemanticComparison मिलान की तुलना करें:AutoFixture समानता केवल गुण
var o1 = new Object1 { a = 1 };
var o2 = new Object2 { a = 1, b = 2};
o1.AsSource().OfLikeness<Object2>().ShouldEqual(o2);
:
public class Object1
{
public int a;
}
public class Object2
{
public int a;
public int b;
}
अब, जब मैं इसे इस तरह से करना
मुझे निम्नलिखित अपवाद मिलता है: "निम्नलिखित सदस्य मेल नहीं खाते: - बी।"
मुझे पता चला कि मैं इस तरह 'बी' के सदस्य भी हटा सकते हैं:
var o1 = new Object1 { a = 1 };
var o2 = new Object2 { a = 1, b = 2};
o1.AsSource().OfLikeness<Object2>().Without(object2 => object2.b).ShouldEqual(o2);
हालांकि, मुझे लगता है कि यह काफी बोझिल है, क्योंकि जब भी मैं कक्षा Object2 एक नए सदस्य को जोड़ने के लिए, मैं करने के लिए है मेरे यूनिट परीक्षण (या कम से कम इकाई परीक्षण सहायक) को सही करें।
क्या कहने का कोई तरीका है "मैं सिर्फ दोनों वस्तुओं में मौजूद सबसेट के लिए समानता के साथ तुलना करना चाहता हूं"?
आपके द्वारा वर्णित तर्क काफी मजबूत है। इससे मुझे और अधिक बोझिल होने के बारे में सोचने में मदद मिली - बिना किसी संपत्ति के नए गुण जोड़ना (या संपत्ति के नामों के लिए दो वस्तुओं को ट्रैक करना झूठी सकारात्मकताओं से बचने के लिए। इस पर मेरा ध्यान बदलने के लिए धन्यवाद! –