คำถามติดแท็ก rhino-mocks

9
วิธีการจำลองคำร้องขอบนคอนโทรลเลอร์ใน ASP.Net MVC
ฉันมีคอนโทรลเลอร์ใน C # โดยใช้เฟรมเวิร์ก ASP.Net MVC public class HomeController:Controller{ public ActionResult Index() { if (Request.IsAjaxRequest()) { //do some ajaxy stuff } return View("Index"); } } ฉันได้รับคำแนะนำเกี่ยวกับการเยาะเย้ยและหวังว่าจะทดสอบโค้ดด้วย RhinoMocks ต่อไปนี้ var mocks = new MockRepository(); var mockedhttpContext = mocks.DynamicMock<HttpContextBase>(); var mockedHttpRequest = mocks.DynamicMock<HttpRequestBase>(); SetupResult.For(mockedhttpContext.Request).Return(mockedHttpRequest); var controller = new HomeController(); controller.ControllerContext = new …

5
อะไรคือความแตกต่างระหว่าง mocks และต้นขั้วบน Rhino Mocks?
ฉันไม่ได้เล่นกับสิ่งนี้มากพอและมักจะใช้ mocks แต่ฉันสงสัยว่าอะไรคือความแตกต่างระหว่างสองนี้และเมื่อใช้อย่างใดอย่างหนึ่งกับอีกหนึ่งในแรด Mocks ปรับปรุง: ฉันยังพบคำตอบสำหรับคำถามของฉันในคำพูดของ Ayende : ความแตกต่างระหว่างสมบูรณ์และ mocks คุณจะได้รับความหมายที่แท้จริงของคำเหล่านี้ในบทความนี้: Mocks ไม่กุด ฉันต้องการที่จะมุ่งเน้นไปที่ความแตกต่างจากมุมมองของแรด Mocks การเยาะเย้ยเป็นวัตถุที่เราสามารถตั้งความคาดหวังไว้และจะตรวจสอบว่าการกระทำที่คาดหวังได้เกิดขึ้นจริง ต้นขั้วเป็นวัตถุที่คุณใช้เพื่อส่งผ่านไปยังรหัสที่อยู่ภายใต้การทดสอบ คุณสามารถตั้งค่าความคาดหวังของมันได้ดังนั้นมันจะทำในบางวิธี แต่ความคาดหวังเหล่านั้นจะไม่ได้รับการยืนยัน คุณสมบัติของ stub จะทำงานโดยอัตโนมัติเหมือนคุณสมบัติปกติและคุณไม่สามารถตั้งค่าความคาดหวังได้ หากคุณต้องการตรวจสอบพฤติกรรมของรหัสภายใต้การทดสอบคุณจะใช้จำลองที่มีความคาดหวังที่เหมาะสมและตรวจสอบว่า หากคุณต้องการเพียงแค่ส่งผ่านค่าที่อาจต้องดำเนินการในบางวิธี แต่ไม่ใช่จุดเน้นของการทดสอบนี้คุณจะใช้สตับ สำคัญ: ต้นขั้วจะไม่ทำให้การทดสอบล้มเหลว

7
แนวทางปฏิบัติที่ดีที่สุดของการพัฒนาแบบทดสอบโดยใช้ C # และ RhinoMocks [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา เพื่อช่วยทีมของฉันเขียนโค้ดที่สามารถทดสอบได้ฉันจึงได้จัดทำรายการแนวทางปฏิบัติที่ดีที่สุดง่ายๆนี้เพื่อทำให้ฐานรหัส C # ของเราสามารถทดสอบได้มากขึ้น (บางประเด็นอ้างถึงข้อ จำกัด ของ Rhino Mocks ซึ่งเป็นกรอบการเยาะเย้ยสำหรับ C # แต่กฎอาจมีผลบังคับใช้มากขึ้นเช่นกัน) ใครมีแนวทางปฏิบัติที่ดีที่สุดที่พวกเขาปฏิบัติตามหรือไม่? ในการเพิ่มความสามารถในการทดสอบโค้ดให้ปฏิบัติตามกฎเหล่านี้: เขียนแบบทดสอบก่อนแล้วจึงเขียนโค้ด เหตุผล: เพื่อให้แน่ใจว่าคุณเขียนโค้ดที่ทดสอบได้และโค้ดทุกบรรทัดจะได้รับการทดสอบที่เขียนขึ้น ออกแบบคลาสโดยใช้การฉีดแบบพึ่งพา เหตุผล: คุณไม่สามารถล้อเลียนหรือทดสอบสิ่งที่มองไม่เห็นได้ แยกโค้ด UI ออกจากพฤติกรรมโดยใช้ Model-View-Controller หรือ Model-View-Presenter เหตุผล: อนุญาตให้ทดสอบตรรกะทางธุรกิจในขณะที่ย่อส่วนที่ไม่สามารถทดสอบได้ (UI) อย่าเขียนวิธีการหรือคลาสแบบคงที่ เหตุผล: วิธีการคงที่เป็นเรื่องยากหรือเป็นไปไม่ได้ที่จะแยกออกและ Rhino Mocks ไม่สามารถล้อเลียนได้ โปรแกรมปิดอินเทอร์เฟซไม่ใช่คลาส เหตุผล: การใช้อินเทอร์เฟซจะชี้แจงความสัมพันธ์ระหว่างวัตถุ อินเทอร์เฟซควรกำหนดเซอร์วิสที่อ็อบเจ็กต์ต้องการจากสภาพแวดล้อม นอกจากนี้อินเทอร์เฟซสามารถล้อเลียนได้อย่างง่ายดายโดยใช้ Rhino …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.