Czy można kpić z klasy Assembly
?Jak mogę kpić z montażu?
Jeśli tak, to z jakich ram i w jaki sposób?
Jeśli nie, w jaki sposób można by pisać testy kodu, który używa Assembly
?
Czy można kpić z klasy Assembly
?Jak mogę kpić z montażu?
Jeśli tak, to z jakich ram i w jaki sposób?
Jeśli nie, w jaki sposób można by pisać testy kodu, który używa Assembly
?
jest bardzo wydajny. Myślę, że może to zrobić. W przypadku innych fałszywych frameworków, takich jak Moq lub Rhino, musisz użyć innej strategii.
Strategia dla Rhino lub Min:
Na przykład: Używasz Asssembly klasę, aby uzyskać pełną nazwę zespołu.
public class YourClass
{
public string GetFullName()
{
Assembly ass = Assembly.GetExecutingAssembly();
return ass.FullName;
}
}
Zgromadzenie klasa pochodzi z interfejsu _Assembly
. Dlatego zamiast bezpośrednio używać interfejsu, można wprowadzić interfejs. Wtedy łatwo jest wyśmiać interfejs dla twojego testu.
Zmodyfikowany klasa:
public class YourClass
{
private _Assembly _assbl;
public YourClass(_Assembly assbl)
{
_assbl = assbl;
}
public string GetFullName()
{
return _assbl.FullName;
}
}
W swoim badaniu drwicie _Assembly
:
public void TestDoSomething()
{
var assbl = MockRepository.GenerateStub<_Assembly>();
YourClass yc = new YourClass(assbl);
string fullName = yc.GetFullName();
//Test conditions
}
To robi. Czy możesz wyjaśnić, jak to zrobić w "tradycyjnym" modelu (np. Moq lub Rhino)? –
Och, nie wiedziałem o tym "ukrytym" interfejsie "_Assembly". Dzięki. Gdybym to zrobił, nie zadałbym tego pytania. Sądzę, że gdyby Assembly nie zaimplementował tego interfejsu, mógłbym go sam stworzyć ('IAssembly') i napisać wrapper, który go implementuje i używa implementacji' Assembly', czy to prawda? –
@ Martinho: To prawda –
Powiedz to "Twoja matka jest chomikiem, a ojciec pachnie eldeberries"? – patros
@patros: zajęło mi trochę czasu, aby zrozumieć ... –
@Martinho Fernandes: Dodano przykład dla Rhino. –