2011-11-23 16 views
10

Moqを使用して純粋なスタブを作成するにはどうすればよいですか?Moqを使用してスタブを作成する方法

[TestFixture] 
public class UrlHelperAssetExtensionsTests 
{ 
    private HttpContextBase httpContextBaseStub; 
    private RequestContext requestContext; 
    private UrlHelper urlHelper; 
    private string stylesheetPath = "/Assets/Stylesheets/{0}"; 

    [SetUp] 
    public void SetUp() 
    { 
      httpContextBaseStub = MockRepository.GenerateStub<HttpContextBase>(); 
      requestContext = new RequestContext(httpContextBaseStub, new RouteData()); 
      urlHelper = new UrlHelper(requestContext); 
    } 

    [Test] 
    public void PbeStylesheet_should_return_correct_path_of_stylesheet() 
    { 
     // Arrange 
     string expected = stylesheetPath.FormatWith("stylesheet.css"); 

     // Act 
     string actual = urlHelper.PbeStylesheet(); 

     // Assert 
     Assert.AreEqual(expected, actual); 
    } 
} 

がどのように部品番号を使用してMockRepository.GenerateStub<HttpContextBase>();のスタブを作成します。Rhinoのモックで、私はこのようにそれをやりましたか?それとも、私はちょうどRhino Mockと一緒にいなければなりませんか?ここで

答えて

1
var mockHttpContext = new Mock<HttpContextBase>(); 
+0

私はスタブとモックに差がある知っているが、あなたの実装はモックやスタブを作成しないを参照してください?私のモックのように見える? –

+3

名前は、このオブジェクトを使用する方法を指します。だから、あなたがこのオブジェクト上の何かを検証しないならば、それはスタブです、もしそれが模擬であれば。 – BartoszKP

10

はあなたのための私の提案です:

Mock<HttpContextBase> mock = new Mock<HttpContextBase>(); 
mock.SetupAllProperties(); 

は、その後、セットアップを行う必要があります。より詳細な情報については

homepage of the MOQ project.

+0

どのような設定が必要ですか?私はちょうど私のコードのように使用する必要があります。私はhttpContextBaseStubを他の場所で使用しません。 –

+0

このようにしてセットアップする必要があります。テスト対象のクラスで必要となります。これは、実行したい単体テストに依存します。あなたは一般的にそれを言うことができます。 – Fischermaen

+0

テストを更新しました。確認してください:) –

関連する問題