È una convenzione che può essere vista utilizzata nel sitecore.dll. È usato per generare un'eccezione se tale condizione non viene soddisfatta.
Per esempio, se si guarda al Assert.IsTrue, se la condizione non è soddisfatta, il sistema lanciare una "InvalidOperationException"
De-compilazione del un metodo dal Search API ho trovato questo.
Assert.IsTrue(local_0 != null, "SearchConfiguration is missing");
Se poi de-compiliamo IsTrue, ci dà
[AssertionMethod]
public static void IsTrue([AssertionCondition(AssertionConditionType.IS_TRUE)] bool condition, string message)
{
if (!condition)
throw new InvalidOperationException(message);
}
Per rispondere alla tua altra domanda è possibile utilizzare questo nel codice dell'applicazione, come si può vedere il suo solo un altro modo di gettare un eccezione se una condizione non è soddisfatta.
La confusione viene fornita con l'uso della parola assert, che come si è detto si vede solitamente nel contesto dei test unitari in una soluzione tradizionale C# .NET. Finché sai cosa sta facendo il Sitecore dietro le quinte, dipende da te se lo vuoi usare o meno.
fonte
2015-05-19 00:36:33
Vale la pena sottolineare che 'System.Diagnostics.Debug.Assert' è condizionale e verrà attivato solo nei build DEBUG di un'applicazione. Sitecore.Assert non ha restrizioni di questo tipo, pertanto genererà InvalidOperationException ogni volta che la condizione di test fallisce in entrambe le build di DEBUG e RELEASE. –
Puoi chiarire "Assert pulisce le cose un po '". Significa che l'eccezione è gonfia. Ancora non vedo il motivo per cui ne abbiamo bisogno. –
Come dice Kevin, non si vuole fare affidamento solo sugli asser. Assert ha lo scopo di coprire i casi che possono aiutare durante il test, come una risorsa non presente o un valore null che non dovrebbe essere presente. È comunque necessario utilizzare la convalida, le eccezioni e la gestione delle eccezioni per il codice di produzione poiché gli asserzioni non funzionano in una build di rilascio. Sono utili durante i test poiché sono rapidi da aggiungere e possono fornire più feedback con poco sforzo. –