2009-08-18 15 views
6

Jak wyśmiać obiekt z konstruktorem za pomocą Rhino Mocks?Makiety obiektu z konstruktorem - Rhino Mocks

Na przykład w jaki sposób miałoby to być obiekt szydził ...

public class Foo : IFoo 
{ 
    private IBar bar; 
    public Foo (IBar bar) 
    { 
     this.bar = bar 
    } 

    public DoSomeThingAwesome() 
    { 
     //awesomeness happens here 
    } 

} 

Odpowiedz

13

Nie wyśmiewać Foo - drwicie IFoo. Aby przetestować samą wersję Foo, kpisz z IBar i przekazujesz próbkę do konstruktora.

Należy starać się uniknąć rzeczy, które opierają się na IFoo wyraźnie budujących wystąpień Foo: powinny one być albo dana fabryka, jeżeli IFoo jakoś, albo mieć IFoo wyraźnie przekazany do nich.

+3

Cóż, to oczywiste, że teraz to powiedziałeś. :) –

4
var myIFoo = MockRepository.GenerateStub<IFoo>(); 

można sprawdzić awesomeness się poprzez

myIFoo.AssertWasCalled(f => f.DoSomethingAwesome()); 
2

Minęło trochę czasu odkąd używane Rhino ale wierzę, że można zrobić:

mockRespository.StrictMock<Foo>(ibarVariable)

Jednak to nie będzie działać, chyba że naprawdę wszyscy członkowie Foo są wirtualne.

Powiązane problemy