을, 그들은 조금 불쾌 할 수있다.
먼저, 모의하는 방법은 이어야합니다.은 가상이어야합니다. 그렇지 않으면 Rhino Mock이 메소드를 인터셉트 할 수 없습니다. 코드를 다음과 같이 변경해 보겠습니다.
public Image Get(BrowserName browser)
{
// if no screenshot mode specified it means that regular screenshot needed
return this.Get(browser, ScreenshotMode.Regular);
}
public virtual Image Get(BrowserName browser, ScreenshotMode mode) {
// some code omitted here
}
두 번째 방법은 현재 가상입니다. 다음과 같이 부분 모의를 설정할 수 있습니다.
//Arrange
var yourClass = MockRepository.GeneratePartialMock<YourClass>();
var bn = new BrowserName();
yourClass.Expect(m => m.Get(bn, ScreenshotMode.Regular));
//Act
yourClass.Get(bn);
//Assert
yourClass.VerifyAllExpectations();
AAA Rhino Mocks 구문을 사용합니다. 녹음/재생을 사용하기를 원한다면, 그것을 사용할 수도 있습니다.
그렇게하는 방법입니다. 당신은 두 가지 방법이없는 지금
public Image Get(BrowserName browser, ScreenshotMode mode = ScreenshotMode.Regular)
{
//Omitted code.
}
, 그래서를 테스트 할 필요가 없습니다 : ScreenshotMode
이 열거하고 당신은 단지 그것을 선택적 매개 변수를 확인 귀하의 처분에 C# 4이있는 경우의 가능성이 더 나은 솔루션입니다 하나는 다른 것을 부른다. (vcsjones는 설명) 방법 가상 만드는 외에
일반적인 개인 메서드를 호출하지 않는 이유는 무엇입니까? –