Diskuze: Unit testy ve Visual Studiu 2012
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Všechno co chceš vystavit mimo assembly musí být public. Když chceš testovat metody, které nejsou public, tak pak stačí tento kód:
ClassX classX = new ClassX();
var method = classX.GetType().GetMethod("name of method");
method.Invoke(classX, new object[] {"some parameters", 5, DateTime.Now, ...})
Pozn. třída jako taková
class A
{
...
}
Má defaultně modifikátor přístupu internal, to je takový private, ale mezi projektama.
Jinak internal třídy potřebují tohle
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("UnitTestProject1")]
Ještě jsem našel tohle, což je asi z hlediska syntaxe jednodušší:
PrivateObject p = new PrivateObject(typeof(ClassX));
p.Invoke("name of method", "some parameters", 5, DateTime.Now, ...);
Nebo minimálně je tam už params, ale to teď nevím od jaké verze .NETu je.
Takže to vypadá že bude jednodušší to hodit do stejného namespace a
nebude se tím prasit kod
Tak tohle je potřeba jen na private metody. Jestli chceš testovat internal třídy, tak stačí zveřejnit namespace pomocí toho atributu.
Teď moc právě nechápu, jestli chceš testovat internal třídy a nebo private metody.
Btw, soukromé metody jsou většinou volány něčím co je veřejné, takže stačí psát unit testy na ty veřejné metody a tím otestuješ i chování těch soukromých.
Jo už mě to funguje
Nevěděl jsem kam mám dat to assembly, už to mám správně
Díky, tohle jsem ptořeboval
Už to šlape jak má
Díky moc
Zobrazeno 6 zpráv z 6.