रिकॉर्ड/रीप्ले दृष्टिकोण RhinoMocks द्वारा समर्थित है। मूल विचार यह है कि आपका परीक्षण निष्पादन दो चरणों, रिकॉर्ड चरण और रीप्ले चरण में बांटा गया है। थोड़ा और अधिक ठोस
var repo = new MockRepository();
var dependency = repo.DynamicMock<IDependency>();
With.Mocks(repo).Expecting(delegate {
Expect.Call(dependency.AMethod(1)).Return(result);
}).Verify(delegate {
var sut = new Sut(wrappee);
sut.DoStuffThatCallsAMethod();
Assert.IsTrue(sut.ResultState);
});
होना करने के लिए तो उम्मीद ब्लॉक रिकार्ड चरण है और सत्यापित करें ब्लॉक खेलना चरण है।
इस कोड के Moq संस्करण होगा
var dependency = new Mock<IDependency>();
dependency.Expect(dep => dep.AMethod(1)).Returns(result);
var sut = new Sut(wrappee.Object);
sut.DoStuffThatCallsAMethod();
Assert.IsTrue(sut.ResultState);
कौन सा रूप में आप देख सकते हैं ज्यादा पढ़ने के लिए अच्छे है। मैं राइनोमोक्स का उपयोग करता था लेकिन जब से मैंने मोक की खोज की तो मैं केवल मक का उपयोग करता हूं। मुझे लगता है कि यह अधिक पढ़ने योग्य कोड उत्पन्न करेगा। तो मेरी सलाह मोक के लिए जाना होगा।
स्रोत
2009-03-16 14:45:53
इस उत्तर मेरे लिए बहुत मतलब नहीं है। निश्चित रूप से, Moq संस्करण सरल है, लेकिन आपके पास अभी भी परीक्षण में उन दो चरणों हैं: रेखा 2 ("अपेक्षा" के लिए कॉल के साथ) "रिकॉर्ड" चरण से संबंधित है, जबकि पंक्तियां 3 और 4 "रीप्ले" चरण से संबंधित हैं । मुझे नहीं लगता कि सिंटैक्स में केवल अंतर "रिकॉर्ड/रीप्ले" मॉडल के लिए आवश्यक है। –