Witam podczas pisania testów jednostkowych często sprawdzam zawartość Json lub ResultWrapper oraz innych kontenerów do którego zmiennych nie ma dostępu bezpośrednio.

I tu pojawia się pytanie czy sprawdzać dane na sztywno czy "zmiennie".

Chodzi o coś takiego:
Przykład 1.

 
return this.Json(new { success = true });

// sprawdzić to tak:
Assert.Equal("{ success = True }", jsonResult.Data.ToString();

// Czy tak: (pomijając rzutowanie i wyodrębnianie zmiennych(nie wiem jak to zrobić)
Assert.True(jsonResult.Success);

Przykład 2:

return this.Json(new { success = false, message = Resources.Global.ErrorOccurred });

// sprawdzić tak:
Assert.Equal("{ success = True, message =  Wystąpił błąd proszę spróbować ponownie. }" 

// Czy tak:
Assert.True(jsonResult.Success);
Assert.Equal(Resources.Global.ErrorOccurred, jsonResult.Message);

Sprawa jest dość trudna w pierwszym przypadku na sztywnie ponieważ nie zawsze wiem jaki będzie wynik np. message lub innych kontenerów więc odpalam debugger i kopiuje zawartość z aktualnych danych.

Sprawa w przypadku drugim wygląda ładniej i nie obawia się zmian ale nie zawsze potrafie wyłuskać dane z Jsona lub innych kontenerów poprzez rzutowanie lub cokolwiek.

Więc jak wy robicie?