2012-01-24 12 views
5

FluentAssertions युक्त जब मैं nullsFluentAssertions Should.Equal संग्रह पर, Nulls

[Test] 
    public void DeepWithNulls() 
    { 
     var l1 = new List<string> { "aaa", null }; 
     var l2 = new List<string> { "aaa", null }; 

     l1.Should().Equal(l2); 
    } 

तुलना नहीं nulls के साथ संग्रह पर अपेक्षा के अनुरूप काम करता है के साथ दो संग्रह की तुलना की कोशिश NullReferece अपवाद के साथ असफल रहा है।

उत्तर

4

इस तथ्य को गहरी संग्रह तुलना तर्क में नीचे Fluent अभिकथन कोड

for (int index = 0; index < expectedItems.Length; index++) 
      { 
       verification.ForCondition((index < actualItems.Length) && actualItems[index].Equals(expectedItems[index])) 
        .FailWith("Expected " + Verification.SubjectNameOr("collection") + 
         " to be equal to {0}{reason}, but {1} differs at index {2}.", expected, Subject, index); 
      } 

उपरोक्त कोड में निम्नलिखित का उपयोग करता है की वजह से हो रहा है expectedItems और actualItems अपनी सूची हैं

अब लगता है कि क्या के दौरान शुरू होगा दूसरा पुनरावृत्ति जब (नीचे भाग) निष्पादित किया जाएगा?

actualItems[index].Equals(expectedItems[index])

actualItems[1] रूप null तो यह अशक्त संदर्भ अपवाद फेंकता

+0

बूम है - 10K। आपका स्वागत है :) –

+1

क्या फ्लुएंट एसेशन के साथ कुछ कामकाज है? या मुझे यूनिट परीक्षणों में चक्र का उपयोग करना है यदि मुझे यकीन है कि परीक्षण संग्रह के लिए नल सामान्य हैं? – tensorsigma

+0

अब मैं सुझाव दूंगा कि कॉल करने से पहले संग्रह में कोई शून्य नहीं है और 'fluentassertion' की 'codeplex' साइट पर एक बग फ़ाइल करें। एक और विकल्प स्रोत डाउनलोड करने और इसे स्वयं ठीक करने के लिए हो सकता है :) –

संबंधित मुद्दे