คำถามติดแท็ก mocking

การเยาะเย้ยและการแกล้งเป็นวิธีในการแยกรหัสหรือส่วนประกอบเพื่อให้แน่ใจว่าการทดสอบหน่วยทำงานกับหน่วยที่ทดสอบได้ของรหัสเท่านั้นโดยไม่ต้องใช้ส่วนประกอบอื่น ๆ หรือการพึ่งพาของแอปพลิเคชัน การเยาะเย้ยนั้นแตกต่างจากการแกล้งซึ่งเยาะเย้ยสามารถตรวจสอบเพื่อยืนยันผลการทดสอบ

10
วิธีการจำลองวัตถุหน้าต่าง JavaScript โดยใช้ Jest?
ฉันต้องการทดสอบฟังก์ชันที่เปิดแท็บใหม่ในเบราว์เซอร์ openStatementsReport(contactIds) { window.open(`a_url_${contactIds}`); } ฉันต้องการจำลองopenฟังก์ชันของหน้าต่างเพื่อตรวจสอบว่า URL ที่ถูกต้องถูกส่งไปยังopenฟังก์ชัน ใช้ Jest ฉันไม่รู้ว่าจะล้อเลียนไฟล์window. ฉันพยายามตั้งค่าwindow.openด้วยฟังก์ชันจำลอง แต่วิธีนี้ไม่ได้ผล ด้านล่างนี้เป็นกรณีทดสอบ it('correct url is called', () => { window.open = jest.fn(); statementService.openStatementsReport(111); expect(window.open).toBeCalled(); }); แต่มันทำให้ฉันมีข้อผิดพลาด expect(jest.fn())[.not].toBeCalled() jest.fn() value must be a mock function or spy. Received: function: [Function anonymous] ฉันควรทำอย่างไรกับกรณีทดสอบ ข้อเสนอแนะหรือคำแนะนำใด ๆ จะได้รับการชื่นชม

2
mockito เมื่อ () การเรียกใช้ทำงานอย่างไร
ให้คำสั่ง Mockito ต่อไปนี้: when(mock.method()).thenReturn(someValue); Mockito ไปเกี่ยวกับการสร้างสิ่งที่เป็นพร็อกซีสำหรับการจำลองอย่างไรเนื่องจากคำสั่ง mock.method () จะส่งค่าส่งคืนไปยังเมื่อ ()? ฉันจินตนาการว่าสิ่งนี้ใช้ CGLib บางอย่าง แต่สนใจที่จะรู้ว่าวิธีนี้ทำได้อย่างไร

7
ฉันจะ "นอนหลับ" โปรแกรม Dart ได้อย่างไร
ฉันต้องการจำลองการเรียกใช้บริการเว็บแบบอะซิงโครนัสในแอปพลิเคชัน Dart ของฉันเพื่อทำการทดสอบ ในการจำลองการสุ่มของการโทรจำลองเหล่านี้ที่ตอบสนอง (อาจไม่เป็นระเบียบ) ฉันต้องการตั้งโปรแกรมให้ม็อคของฉันรอ (นอนหลับ) ในช่วงเวลาหนึ่งก่อนที่จะคืน 'อนาคต' ฉันจะทำเช่นนี้ได้อย่างไร?

14
วิธีการจำลอง localStorage ในการทดสอบหน่วย JavaScript
มีห้องสมุดไว้ล้อเลียนlocalStorageบ้างไหม? ฉันใช้Sinon.JSสำหรับการเยาะเย้ยจาวาสคริปต์อื่น ๆ ส่วนใหญ่และพบว่ามันยอดเยี่ยมจริงๆ การทดสอบครั้งแรกของฉันแสดงให้เห็นว่า localStorage ปฏิเสธที่จะกำหนดให้ใน firefox (sadface) ดังนั้นฉันอาจต้องการแฮ็คบางอย่างเกี่ยวกับสิ่งนี้: / ตัวเลือกของฉัน ณ ตอนนี้ (ตามที่ฉันเห็น) มีดังนี้: สร้างฟังก์ชันการตัดที่รหัสทั้งหมดของฉันใช้และล้อเลียน สร้างการจัดการสถานะ (อาจซับซ้อน) บางประเภท (สแน็ปช็อต localStorage ก่อนการทดสอบในการล้างข้อมูลการคืนค่าสแน็ปช็อต) สำหรับ localStorage ?????? คุณคิดอย่างไรกับแนวทางเหล่านี้และคุณคิดว่ามีวิธีอื่นที่ดีกว่าในการดำเนินการนี้หรือไม่? ไม่ว่าจะด้วยวิธีใดฉันจะใส่ "ไลบรารี" ที่เป็นผลลัพธ์ที่ฉันสร้างไว้ใน github เพื่อความดีงามของโอเพ่นซอร์ส


6
Jest: วิธีที่ดีกว่าในการปิดใช้งานคอนโซลภายในการทดสอบหน่วย
ฉันสงสัยว่ามีวิธีที่ดีกว่าในการปิดใช้งานข้อผิดพลาดของคอนโซล ภายในการทดสอบ Jest เฉพาะหรือไม่ (เช่นคืนค่าคอนโซลเดิมก่อน / หลังการทดสอบแต่ละครั้ง) นี่คือแนวทางปัจจุบันของฉัน: describe("Some description", () => { let consoleSpy; beforeEach(() => { if (typeof consoleSpy === "function") { consoleSpy.mockRestore(); } }); test("Some test that should not output errors to jest console", () => { expect.assertions(2); consoleSpy = jest.spyOn(console, "error").mockImplementation(); // some function that uses …

5
ฉันจะจำลอง HttpContext ใน ASP.NET MVC โดยใช้ Moq ได้อย่างไร
[TestMethod] public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist() { var context = new Mock<HttpContextBase>(); var request = new Mock<HttpRequestBase>(); context .Setup(c => c.Request) .Returns(request.Object); HomeController controller = new HomeController(); controller.HttpContext = context; //Here I am getting an error (read only). ... } ตัวควบคุมฐานของฉันมีการแทนที่การเริ่มต้นที่ได้รับเป็น requestContext นี้ ฉันพยายามจะผ่านเรื่องนี้ไป แต่ฉันทำอะไรไม่ถูก protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); …

7
Mockito - @Spy vs @Mock
Mockito - ฉันเข้าใจว่าสายลับเรียกวิธีการจริงบนวัตถุในขณะที่การล้อเลียนเรียกวิธีการบนวัตถุคู่ นอกจากนี้ควรหลีกเลี่ยงสายลับเว้นแต่จะมีกลิ่นรหัส อย่างไรก็ตามสายลับทำงานอย่างไรและฉันควรใช้มันจริงเมื่อใด ต่างจากล้อเลียนอย่างไร?

11
สแควร์ติดตั้งเซิร์ฟเวอร์จำลองสำหรับการทดสอบ
วิธีใดเป็นวิธีที่ดีที่สุดในการจำลองเซิร์ฟเวอร์เพื่อทดสอบเมื่อใช้ไฟล์ กรอบ retrofit ตาราง วิธีที่เป็นไปได้: สร้างไคลเอนต์ติดตั้งใหม่และตั้งค่าใน RestAdapter.Builder (). setClient () สิ่งนี้เกี่ยวข้องกับการแยกวิเคราะห์อ็อบเจ็กต์ Request และส่งคืน json เป็นอ็อบเจ็กต์การตอบสนอง ใช้อินเทอร์เฟซที่มีคำอธิบายประกอบนี้เป็นคลาสจำลองและใช้แทนเวอร์ชันที่ RestAdapter.create () (จะไม่ทดสอบการทำให้เป็นอนุกรม gson) เหรอ? ตามหลักการแล้วฉันต้องการให้เซิร์ฟเวอร์จำลองให้การตอบสนอง json ดังนั้นฉันจึงสามารถทดสอบการทำให้เป็นอนุกรม gson ได้ในเวลาเดียวกัน ตัวอย่างใด ๆ จะได้รับการชื่นชมอย่างมาก

4
การใช้ IoC สำหรับการทดสอบหน่วย
จะใช้คอนเทนเนอร์ IoC สำหรับการทดสอบหน่วยได้อย่างไร? การจัดการล้อเลียนในโซลูชันขนาดใหญ่ (มากกว่า 50 โครงการ) โดยใช้ IoC มีประโยชน์หรือไม่ ประสบการณ์ใด ๆ ไลบรารี C # ใดที่ใช้งานได้ดีในการทดสอบหน่วย?

3
วิธีเปลี่ยนการใช้งานจำลองบนพื้นฐานการทดสอบหนึ่งครั้ง [Jestjs]
ฉันต้องการที่จะเปลี่ยนการดำเนินงานของการพึ่งพาล้อเลียนในแต่ละวิธีการทดสอบเดียวโดยการขยายจำลองเริ่มต้นพฤติกรรมและการคืนค่ากลับมาในการดำเนินการเดิมเมื่อรันการทดสอบต่อไป สั้น ๆ นี่คือสิ่งที่ฉันพยายามบรรลุ: จำลองการพึ่งพา เปลี่ยน / ขยายการใช้งานจำลองในการทดสอบเดียว เปลี่ยนกลับเป็นการจำลองแบบเดิมเมื่อดำเนินการทดสอบครั้งต่อไป ฉันกำลังใช้Jest v21. นี่คือลักษณะของการทดสอบ Jest โดยทั่วไป: __mocks__/myModule.js const myMockedModule = jest.genMockFromModule('../myModule'); myMockedModule.a = jest.fn(() => true); myMockedModule.b = jest.fn(() => true); export default myMockedModule; __tests__/myTest.js import myMockedModule from '../myModule'; // Mock myModule jest.mock('../myModule'); beforeEach(() => { jest.clearAllMocks(); }); describe('MyTest', () => { …

7
วิธีการเยาะเย้ยทรัพย์สินแบบอ่านอย่างเดียวด้วยการเยาะเย้ย?
คุณล้อเลียนทรัพย์สินแบบอ่านอย่างเดียวด้วยการเยาะเย้ยได้อย่างไร? ฉันเหนื่อย: setattr(obj.__class__, 'property_to_be_mocked', mock.Mock()) แต่ปัญหาคือมันใช้กับทุกอินสแตนซ์ของชั้นเรียน ... ซึ่งทำให้การทดสอบของฉันแตก คุณมีความคิดอื่น ๆ อีกไหม? ฉันไม่ต้องการเยาะเย้ยวัตถุเต็มเฉพาะคุณสมบัติเฉพาะนี้

3
วิธีการจำลอง ModelState.IsValid โดยใช้ Moq framework?
ฉันกำลังตรวจสอบ ModelState.IsValidวิธีการดำเนินการของคอนโทรลเลอร์ที่สร้างพนักงานแบบนี้: [HttpPost] public virtual ActionResult Create(EmployeeForm employeeForm) { if (this.ModelState.IsValid) { IEmployee employee = this._uiFactoryInstance.Map(employeeForm); employee.Save(); } // Etc. } ฉันต้องการจำลองในวิธีการทดสอบหน่วยของฉันโดยใช้ Moq Framework ฉันพยายามล้อเลียนแบบนี้: var modelState = new Mock<ModelStateDictionary>(); modelState.Setup(m => m.IsValid).Returns(true); แต่สิ่งนี้ทำให้เกิดข้อยกเว้นในกรณีทดสอบหน่วยของฉัน ใครสามารถช่วยฉันที่นี่?

7
ห้องสมุดล้อเลียน Python ที่คุณชื่นชอบคืออะไร? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ไลบรารีจำลองที่คุณชื่นชอบสำหรับ Python คืออะไร?
91 python  mocking 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.