का उपयोग करके ईवेंट पंजीकरण की पुष्टि करना मैं एमवीपी पैटर्न using this example को लागू करने की कोशिश कर रहा एक एएसपीनेट (क्लासिक) अनुप्रयोग विकसित कर रहा हूं। इकाई के लिए मेरे प्रस्तोता परीक्षण की कोशिश कर रहा है और निम्न पद्धति का उपयोग कर में, psuedocode जिसके लिए इतनाMoq
//base view interface
public interface IView
{
event EventHandler Init;
event EventHandler Load;
bool IsPostBack { get; }
void DataBind();
bool IsValid { get;}
}
//presenter psuedo code
public class SomePresenter
{
public SomePresenter(ISomeDomainService service, IView someView)
{
...
//HOW DO WE TEST/VERIFY THAT THIS REGISTRATION OCCURS?
someView.Init += OnInit;
someView.Load += OnLoad;
}
}
...
//consuming code that exercises the above code, that needs to be tested
var presenter = new SomePresenter(someDomainService, someView);
तरह लग रहा है मैं कैसे सत्यापित है कि प्रस्तोता कर रहा है क्या उम्मीद है अर्थात Init और लोड की घटनाओं के लिए पंजीकरण? यह आसानी से Phil Haack's example का उपयोग कर राइनो का मजाक उड़ाता है में किया जाता है ...
[Test]
public void VerifyAttachesToViewEvents()
{
viewMock.Load += null;
LastCall.IgnoreArguments();
viewMock.PostSaved += null;
LastCall.IgnoreArguments();
mocks.ReplayAll();
new PostEditController(viewMock,
this.dataServiceMock);
mocks.VerifyAll();
}
... हम कैसे कर सकते हैं इस MOQ का उपयोग करते समय?
+1 - मेरे सिर मारा एक ही दीवार के खिलाफ। – Gishu