คำถามติดแท็ก unit-testing

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

3
รหัสครอบคลุมกับมอคค่า
ฉันใช้มอคค่าสำหรับทดสอบแอปพลิเคชัน NodeJS ของฉัน ฉันไม่สามารถหาวิธีใช้คุณสมบัติครอบคลุมรหัสได้ ฉันลอง googling แล้ว แต่ไม่พบบทแนะนำที่เหมาะสม กรุณาช่วย.

8
แนวทางปฏิบัติที่ดีที่สุดในการทดสอบวิธีการป้องกันด้วย PHPUnit
ฉันพบการสนทนาในคุณทดสอบข้อมูลส่วนตัว ฉันได้ตัดสินใจแล้วว่าในบางชั้นฉันต้องการได้รับวิธีการป้องกัน แต่ทดสอบพวกเขา วิธีการเหล่านี้บางวิธีคงที่และสั้น เนื่องจากวิธีการส่วนใหญ่ของสาธารณชนใช้ประโยชน์จากมันฉันอาจจะสามารถลบการทดสอบในภายหลังได้อย่างปลอดภัย แต่สำหรับการเริ่มต้นด้วยวิธี TDD และหลีกเลี่ยงการดีบักฉันต้องการทดสอบพวกเขาจริงๆ ฉันคิดถึงสิ่งต่อไปนี้: Object Objectที่ได้รับคำแนะนำในคำตอบนั้นดูเหมือนจะเกินกำลังสำหรับเรื่องนี้ เริ่มต้นด้วยวิธีการสาธารณะและเมื่อรหัสครอบคลุมจะได้รับจากการทดสอบระดับที่สูงขึ้นให้เปิดการป้องกันและลบการทดสอบ สืบทอดคลาสที่มีส่วนต่อประสานที่ทดสอบได้ซึ่งทำให้วิธีการป้องกันเป็นแบบสาธารณะ แนวปฏิบัติที่ดีที่สุดคืออะไร มีอะไรอีกไหม? ดูเหมือนว่า JUnit จะเปลี่ยนวิธีการป้องกันโดยอัตโนมัติเพื่อให้เป็นแบบสาธารณะ แต่ฉันไม่ได้มองลึกลงไป PHP ไม่ปล่อยให้เรื่องนี้ผ่านการสะท้อน

6
ความแตกต่างระหว่าง 'มัน' และ 'ทดสอบ' อย่างสนุกสนานคืออะไร?
ฉันมีการทดสอบสองครั้งในกลุ่มการทดสอบของฉัน หนึ่งใช้มันอีกหนึ่งใช้ทดสอบและพวกเขาดูเหมือนจะทำงานคล้ายกันมาก ความแตกต่างระหว่างพวกเขาคืออะไร? describe('updateAll', () => { it('no force', () => { return updateAll(TableName, ["fileName"], {compandId: "test"}) .then(updatedItems => { let undefinedCount = 0; for (let item of updatedItems) { undefinedCount += item === undefined ? 1 : 0; } // console.log("result", result); expect(undefinedCount).toBe(updatedItems.length); }) }); test('force update', () => …

7
ใหม่ต่อการทดสอบหน่วยวิธีการเขียนการทดสอบที่ยอดเยี่ยม? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันค่อนข้างใหม่สำหรับโลกแห่งการทดสอบหน่วยและฉันเพิ่งตัดสินใจเพิ่มการครอบคลุมการทดสอบสำหรับแอพที่มีอยู่ของฉันในสัปดาห์นี้ นี่เป็นงานที่ยิ่งใหญ่ส่วนใหญ่เป็นเพราะจำนวนชั้นเรียนที่จะทดสอบ แต่ก็เป็นเพราะการทดสอบการเขียนนั้นเป็นเรื่องใหม่สำหรับฉัน ฉันเขียนข้อสอบไปแล้วหลายชั้น แต่ตอนนี้ฉันสงสัยว่าฉันทำถูกไหม เมื่อฉันเขียนการทดสอบสำหรับวิธีการฉันมีความรู้สึกของการเขียนใหม่เป็นครั้งที่สองสิ่งที่ฉันได้เขียนไว้ในวิธีการนั้น การทดสอบของฉันดูเหมือนจะถูกผูกไว้กับวิธีการอย่างแน่นหนา (ทดสอบ codepath ทั้งหมดโดยคาดหวังว่าวิธีการภายในบางอย่างจะถูกเรียกว่าจำนวนครั้งโดยมีอาร์กิวเมนต์บางอย่าง) ซึ่งดูเหมือนว่าถ้าฉันเคยทำซ้ำวิธีการทดสอบจะล้มเหลวแม้ว่า พฤติกรรมสุดท้ายของวิธีการไม่เปลี่ยนแปลง นี่เป็นเพียงความรู้สึกและอย่างที่กล่าวไปก่อนหน้านี้ฉันไม่มีประสบการณ์ในการทดสอบ หากมีผู้ทดสอบที่มีประสบการณ์มากกว่านั้นสามารถให้คำแนะนำเกี่ยวกับวิธีเขียนแบบทดสอบที่ยอดเยี่ยมสำหรับแอปที่มีอยู่ซึ่งจะได้รับการชื่นชมอย่างมาก แก้ไข: ฉันชอบที่จะขอบคุณ Stack Overflow ฉันมีอินพุตที่ยอดเยี่ยมในเวลาน้อยกว่า 15 นาทีที่ตอบเวลาอ่านออนไลน์มากขึ้นที่ฉันเพิ่งทำ

7
การคืนค่าที่แตกต่างกันเป็นครั้งแรกและครั้งที่สองด้วย Moq
ฉันมีแบบทดสอบนี้: [TestCase("~/page/myaction")] public void Page_With_Custom_Action(string path) { // Arrange var pathData = new Mock<IPathData>(); var pageModel = new Mock<IPageModel>(); var repository = new Mock<IPageRepository>(); var mapper = new Mock<IControllerMapper>(); var container = new Mock<IContainer>(); container.Setup(x => x.GetInstance<IPageRepository>()).Returns(repository.Object); repository.Setup(x => x.GetPageByUrl<IPageModel>(path)).Returns(() => pageModel.Object); pathData.Setup(x => x.Action).Returns("myaction"); pathData.Setup(x => x.Controller).Returns("page"); var resolver …
262 c#  unit-testing  nunit  moq 

3
Karma กับกรอบการทดสอบ Jasmine, Mocha, QUnit [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ คำถามไม่กี่: กรรมและกรอบการทดสอบ X (จัสมินมอคค่า QUnit) เกี่ยวข้องกันอย่างไร อะไรคือกรอบการทำงานที่เทียบเท่าในโลกของ Java? ฉันถือว่าจัสมินมอคค่า QUnit เท่ากับ jUnit / TestNG กรรมเป็นอย่างไรบ้าง ฉันสามารถรันกรอบการทดสอบ X (เช่นจัสมิน) โดยไม่มีกรรมได้หรือไม่? กรรมสำหรับการทดสอบหน่วยหรือการรวม / การทดสอบ e2e หรือไม่ การอ้างอิงนี้แสดงสำหรับการทดสอบหน่วยอย่างไรก็ตามสิ่งนี้กล่าวคือการทดสอบ e2e

6
ความแตกต่างระหว่าง 2 JUnit Assert
เฟรมเวิร์ก JUnit มี 2 Assertคลาส (ในแพ็กเกจที่แตกต่างกันอย่างเห็นได้ชัด) และวิธีการในแต่ละรายการดูเหมือนจะคล้ายกัน มีใครอธิบายได้ไหมว่าเพราะเหตุใด เรียนผมหมายถึงคือ: และjunit.framework.Assertorg.junit.Assert

7
รันการทดสอบเดี่ยวจาก unittest.TestCase ผ่านทางบรรทัดคำสั่ง
ในทีมของเราเรากำหนดกรณีทดสอบส่วนใหญ่ดังนี้: คลาส "framework" หนึ่งคลาสourtcfw.py: import unittest class OurTcFw(unittest.TestCase): def setUp: # something # other stuff that we want to use everywhere และกรณีทดสอบจำนวนมากเช่น testMyCase.py: import localweather class MyCase(OurTcFw): def testItIsSunny(self): self.assertTrue(localweather.sunny) def testItIsHot(self): self.assertTrue(localweather.temperature > 20) if __name__ == "__main__": unittest.main() เมื่อฉันเขียนรหัสทดสอบใหม่และต้องการเรียกใช้บ่อยๆและประหยัดเวลาสิ่งที่ฉันทำคือฉันใส่ "__" ไว้หน้าการทดสอบอื่น ๆ ทั้งหมด แต่มันเป็นเรื่องยุ่งยากกวนใจฉันจากรหัสที่ฉันเขียนและเสียงการกระทำที่สร้างขึ้นนั้นน่ารำคาญ เช่นเมื่อมีการเปลี่ยนแปลงtestItIsHot()ฉันต้องการที่จะทำสิ่งนี้: $ python testMyCase.py …

19
โครงการทดสอบ NUnit กับ Visual Studio 2008 สำหรับการทดสอบหน่วย? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันจะเริ่มโครงการใหม่ในที่ทำงานและต้องการเข้าทดสอบหน่วย เราจะใช้ VS 2008, C # และ ASP.NET MVC ฉันกำลังมองหาการใช้ NUnit หรือโครงการทดสอบในตัวที่ VS2008 มี แต่ฉันเปิดให้ทำการค้นคว้าคำแนะนำอื่น ๆ ระบบหนึ่งดีกว่าระบบอื่นหรืออาจจะใช้ / เข้าใจง่ายกว่าระบบอื่นหรือไม่? ฉันกำลังมองหาการตั้งค่าโครงการนี้เป็น "แนวปฏิบัติที่ดีที่สุด" สำหรับความพยายามในการพัฒนาของเราในอนาคต ขอบคุณสำหรับความช่วยเหลือและคำแนะนำใด ๆ !!

7
สร้างโครงการ Maven โดยไม่ใช้การทดสอบหน่วย
คุณจะสร้างโครงการ Maven โดยไม่ใช้การทดสอบหน่วยได้อย่างไร ขณะนี้การปรับโครงสร้างรหัสบางอย่างที่ฉันมีสำหรับ servlet และอยากจะลองมันออกมาในเว็บเบราว์เซอร์ของฉัน (ซึ่งหมายถึงการทำงานmvn installที่จะได้รับ.warการอัปโหลดไปยังโพง) ฉันรู้ว่าการทดสอบ UNIT ของฉันล้มเหลวและฉันไม่เป็นไรเพราะฉันจะแก้ไขเมื่อฉันมีรหัสในแบบที่ฉันต้องการ มีใครให้คำแนะนำได้บ้าง

14
รับชื่อของการทดสอบที่กำลังดำเนินการใน JUnit 4
ใน JUnit 3 ฉันสามารถรับชื่อของการทดสอบที่รันอยู่ในปัจจุบันเช่นนี้: public class MyTest extends TestCase { public void testSomething() { System.out.println("Current test is " + getName()); ... } } ซึ่งจะพิมพ์ "การทดสอบปัจจุบันคือการทดสอบบางอย่าง" มีวิธีการนอกกรอบหรือวิธีการง่ายๆใน JUnit 4 หรือไม่? พื้นหลัง: เห็นได้ชัดว่าฉันไม่ต้องการพิมพ์ชื่อการทดสอบ ฉันต้องการโหลดข้อมูลเฉพาะของการทดสอบที่เก็บไว้ในทรัพยากรที่มีชื่อเดียวกับการทดสอบ คุณรู้ว่าการประชุมเกี่ยวกับการกำหนดค่าและทุกสิ่งที่
240 java  unit-testing  junit 

15
จะทดสอบได้อย่างไรว่าไม่มีข้อยกเว้นเกิดขึ้น?
ฉันรู้ว่าวิธีหนึ่งที่จะทำได้: @Test public void foo(){ try{ //execute code that you expect not to throw Exceptions. } catch(Exception e){ fail("Should not have thrown any exception"); } } มีวิธีใดที่สะอาดกว่าในการทำสิ่งนี้ (อาจใช้ Junit @Ruleหรือไม่?)

25
คุณจะสร้างการทดสอบหน่วยแบบไดนามิก (พารามิเตอร์) ในงูใหญ่ได้อย่างไร?
ฉันมีข้อมูลการทดสอบบางอย่างและต้องการสร้างการทดสอบหน่วยสำหรับแต่ละรายการ ความคิดแรกของฉันคือทำสิ่งนี้: import unittest l = [["foo", "a", "a",], ["bar", "a", "b"], ["lee", "b", "b"]] class TestSequence(unittest.TestCase): def testsample(self): for name, a,b in l: print "test", name self.assertEqual(a,b) if __name__ == '__main__': unittest.main() ข้อเสียของมันคือมันจัดการข้อมูลทั้งหมดในการทดสอบเดียว ฉันต้องการสร้างการทดสอบหนึ่งรายการสำหรับแต่ละรายการในทันที ข้อเสนอแนะใด ๆ

18
ปัญหา PATH กับ pytest 'ImportError: ไม่มีโมดูลชื่อ YadaYadaYada'
ฉันใช้ easy_install เพื่อติดตั้ง pytest บน mac และเริ่มเขียนการทดสอบสำหรับโครงการที่มีโครงสร้างไฟล์ที่ชอบ: repo/ repo/app.py repo/settings.py repo/models.py repo/tests/ repo/tests/test_app.py ทำงานpy.testในไดเรกทอรี repo ทุกอย่างทำงานตามที่คุณคาดหวัง แต่เมื่อฉันลองสิ่งเดียวกันบน linux หรือ windows (ทั้งคู่มี pytest 2.2.3 อยู่) มันจะเห่าเมื่อใดก็ตามที่มันกระทบการนำเข้าบางสิ่งจากพา ธ ของแอปพลิเคชันของฉัน พูดเช่นfrom app import some_def_in_app ฉันจำเป็นต้องแก้ไข PATH ของฉันเพื่อเรียกใช้ py.test บนระบบเหล่านี้หรือไม่? มีใครมีประสบการณ์นี้

30
เหตุใด visual studio 2012 จึงไม่พบแบบทดสอบของฉัน
ฉันมีการทดสอบบางอย่างที่ใช้งานในตัวMicrosoft.VisualStudio.TestTools.UnitTestingแต่ไม่สามารถทดสอบได้ ฉันใช้ visual studio 2012 ultimate ฉันมีทางออกของสองโครงการ หนึ่งมีการทดสอบusing Microsoft.VisualStudio.TestTools.UnitTesting, [TestClass]ก่อนที่จะเรียน [TestMethod]ก่อนวิธีการทดสอบและการอ้างอิงMicrosoft.VisualStudio.QualityTools.UnitTestFramework(รุ่น 10.0.0.0, รุ่นรันไทม์ v2.0.50727) ฉันลองใช้ dot-net framework 3.5, 4 และ 4.5 ​​แล้วมีข้อผิดพลาดในการกำหนดเป้าหมายใหม่ ฉันพยายามสร้างโซลูชันและโครงการ นักสำรวจทดสอบมีข้อความ 'สร้างโซลูชันของคุณเพื่อค้นหาการทดสอบที่มีอยู่ทั้งหมด คลิก "เรียกใช้ทั้งหมด" เพื่อสร้างค้นหาและเรียกใช้การทดสอบทั้งหมดในโซลูชันของคุณ ดังนั้นคำถามคือฉันจะหา visual studio เพื่อทดสอบได้อย่างไร ได้ลองทำตามเช่นนี้: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspxแต่ไม่ประสบความสำเร็จ: ฉันติดอยู่ในส่วนเริ่มต้นเมื่อถูกถามถึง create testsคลิกขวาและเลือก create testsไม่มี ฉันมีการทดสอบนี้ (มันรวบรวม แต่ไม่ปรากฏใน test explorer): using Microsoft.VisualStudio.TestTools.UnitTesting; namespace tests { [TestClass] …

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