2016-05-29 2 views
3

Ich arbeite an einigen Komponententests und bin mir nicht sicher, warum dieser bestimmte Test fehlschlägt.MSTest Assert.AreEqual schlägt mit dem String-Array fehl

Der Test besteht darin, zu bestätigen, dass eine benutzerdefinierte Ansichts-Engine an der richtigen Stelle für Ansichten sucht.

In meiner benutzerdefinierten Ansicht Motor ist dies:

AreaMasterLocationFormats = new[] 
{ 
    "~/Areas/{2}/App/{1}/Views/{0}.cshtml", 
    "~/Areas/{2}/App/Shared/Views/{0}.cshtml" 
}; 

Und in meinem Test ist dies:

string[] expected = new[] 
{ 
    "~/Areas/{2}/App/{1}/Views/{0}.cshtml", 
    "~/Areas/{2}/App/Shared/Views/{0}.cshtml" 
}; 

CustomRazorViewEngine engine = new CustomRazorViewEngine(); 

Assert.AreEqual(expected, engine.AreaMasterLocationFormats); 

Der Test mit der Meldung fehlschlägt:

Message: Assert.AreEqual failed. Expected:<System.String[]>. Actual:<System.String[]>. 

(s/o's Zitat Format mag nicht die zweite lt in diesem ...)

Ich bin mir nicht sicher warum, wie wenn ich den Test debuggen alle gut aussieht.

+0

Nicht sicher Sehen Sie, warum Sie Ihre Antwort gelöscht (wer auch immer Sie waren), aber es war richtig ... – jleach

+0

Für einen Moment ich wasn Sicher ist 'string []' eigentlich eine 'Collection'. – haim770

+0

@ haim770 Anscheinend, wie der Test jetzt passiert :) Ich werde außer wenn mein Timer ist, danke. – jleach

Antwort

3

Sie müssen stattdessen CollectionAssert verwenden:

CollectionAssert.AreEqual(expected, engine.AreaMasterLocationFormats); 

MSDN

Verwandte Themen