Assembly
클래스를 조롱 할 수 있습니까?어떻게 조립품을 조롱 할 수 있습니까?
그렇다면 어떤 프레임 워크를 사용합니까?
그렇다면 Assembly
을 사용하는 코드에 대한 테스트 작성 방법은 무엇입니까?
Assembly
클래스를 조롱 할 수 있습니까?어떻게 조립품을 조롱 할 수 있습니까?
그렇다면 어떤 프레임 워크를 사용합니까?
그렇다면 Assembly
을 사용하는 코드에 대한 테스트 작성 방법은 무엇입니까?
TypeMock은 매우 강력합니다. 나는 그것이 그것을 할 수 있다고 생각한다. Moq 또는 Rhino와 같은 다른 모의 프레임 워크의 경우 다른 전략을 사용해야합니다. 코뿔소 또는 MOQ에 대한
전략 : 예를 당
: 당신은 어셈블리 이름을 얻기 위해 Asssembly 클래스를 사용하고 있습니다.
public class YourClass
{
public string GetFullName()
{
Assembly ass = Assembly.GetExecutingAssembly();
return ass.FullName;
}
}
총회 인터페이스 _Assembly
에서 파생 된 클래스입니다. 따라서 조립품을 직접 사용하는 대신 인터페이스를 삽입 할 수 있습니다. 그런 다음 테스트를 위해 인터페이스를 모의하기가 쉽습니다.
수정 된 클래스 : 테스트에서
public class YourClass
{
private _Assembly _assbl;
public YourClass(_Assembly assbl)
{
_assbl = assbl;
}
public string GetFullName()
{
return _assbl.FullName;
}
}
, 당신은 _Assembly
을 조롱 :
public void TestDoSomething()
{
var assbl = MockRepository.GenerateStub<_Assembly>();
YourClass yc = new YourClass(assbl);
string fullName = yc.GetFullName();
//Test conditions
}
있습니다. Moq 또는 Rhino와 같은 "전통적인"mock 프레임 워크에서 어떻게 수행 할 수 있는지 설명 할 수 있습니까? –
아,이 "숨겨진"_Assembly 인터페이스에 대해 알지 못했습니다. 감사. 내가 그랬다면 나는 그 질문을하지 않았을 것이다. Assembly가이 인터페이스를 구현하지 않았다면 (IAssembly') 자신을 생성하고 구현 한 래퍼를 작성하여 Assembly 구현을 사용할 수 있었겠습니까? 맞습니까? –
@ Martinho : 맞습니다. –
그것은 "당신의 어머니는 햄스터, 그리고 당신의 아버지가 eldeberries의 냄새"에게? – patros
@patros : 이해하는 데 시간이 좀 걸렸습니다 ... –
@Martinho Fernandes : Rhino에 대한 예제를 추가했습니다. –