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

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

7
ทดสอบส่วนหัวของ PHP ด้วย PHPUnit
ฉันกำลังพยายามใช้ PHPunit เพื่อทดสอบคลาสที่แสดงผลส่วนหัวที่กำหนดเอง ปัญหาคือบนเครื่องของฉันสิ่งนี้: <?php class HeadersTest extends PHPUnit_Framework_TestCase { public function testHeaders() { ob_start(); header('Location: foo'); $headers_list = headers_list(); header_remove(); ob_clean(); $this->assertContains('Location: foo', $headers_list); } } หรือแม้แต่สิ่งนี้: <?php class HeadersTest extends PHPUnit_Framework_TestCase { public function testHeaders() { ob_start(); header('Location: foo'); header_remove(); ob_clean(); } } ส่งคืนข้อผิดพลาดนี้: name@host [~/test]# phpunit --verbose …

16
ไม่พบ testhost.dll โปรดเผยแพร่โครงการทดสอบของคุณแล้วลองอีกครั้ง
ฉันมีไลบรารีคลาส dotnet core อย่างง่ายพร้อมวิธีทดสอบ XUnit เดียว: TestLib.csproj: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.NET.Test.SDK" Version="15.9.0" /> <PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit.runner.console" Version="2.4.1"> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="xunit.runners" Version="2.0.0" /> </ItemGroup> </Project> BasicTest.cs: using Xunit; …

3
เรียกใช้การทดสอบเดี่ยวจากคลาส JUnit โดยใช้บรรทัดคำสั่ง
ฉันพยายามหาแนวทางที่จะช่วยให้ฉันสามารถเรียกใช้การทดสอบเดียวจากคลาส JUnit โดยใช้บรรทัดคำสั่งและ java เท่านั้น ฉันสามารถเรียกใช้การทดสอบทั้งชุดจากชั้นเรียนโดยใช้สิ่งต่อไปนี้: java -cp .... org.junit.runner.JUnitCore org.package.classname สิ่งที่ฉันอยากทำจริงๆคืออะไรแบบนี้: java -cp .... org.junit.runner.JUnitCore org.package.classname.method หรือ: java -cp .... org.junit.runner.JUnitCore org.package.classname#method ฉันสังเกตเห็นว่าอาจมีวิธีดำเนินการนี้โดยใช้คำอธิบายประกอบ JUnit แต่ฉันไม่ต้องการแก้ไขซอร์สของคลาสทดสอบของฉันด้วยมือ (พยายามทำให้เป็นอัตโนมัติ) ฉันยังเห็นว่า Maven อาจมีวิธีทำเช่นนี้ แต่ถ้าเป็นไปได้ฉันอยากจะหลีกเลี่ยงโดยขึ้นอยู่กับ Maven ฉันจึงสงสัยว่ามีวิธีใดบ้างที่จะทำเช่นนี้? ประเด็นสำคัญที่ฉันกำลังมองหา: ความสามารถในการเรียกใช้การทดสอบเดียวจากคลาสทดสอบ JUnit Command Line (โดยใช้ JUnit) หลีกเลี่ยงการแก้ไขแหล่งทดสอบ หลีกเลี่ยงการใช้เครื่องมือเพิ่มเติม

18
การทดสอบหน่วยที่ดีคืออะไร? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน9 ปีที่ผ่านมา ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันแน่ใจว่าพวกคุณส่วนใหญ่กำลังเขียนการทดสอบอัตโนมัติจำนวนมากและคุณได้พบกับข้อผิดพลาดทั่วไปบางอย่างเมื่อทำการทดสอบหน่วย คำถามของฉันคือคุณปฏิบัติตามกฎระเบียบการสอบข้อเขียนเพื่อหลีกเลี่ยงปัญหาในอนาคตหรือไม่? เพื่อให้เจาะจงมากขึ้น: อะไรคือคุณสมบัติของการทดสอบหน่วยที่ดีหรือคุณเขียนแบบทดสอบของคุณอย่างไร? ขอแนะนำให้ใช้ภาษาที่ไม่เชื่อเรื่องพระเจ้า

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

8
จะตั้งค่าพารามิเตอร์ JVM สำหรับ Junit Unit Tests ได้อย่างไร?
ฉันมีการทดสอบหน่วย Junit บางอย่างที่ต้องใช้พื้นที่ฮีปจำนวนมากในการรันนั่นคือ 1G (พวกเขาทดสอบฟังก์ชันการทำงานที่ต้องใช้หน่วยความจำมากสำหรับแอป webstart ซึ่งจะทำงานโดยมีพื้นที่ฮีปเพียงพอเท่านั้นและจะทำงานภายในบนเครื่อง Win 7 64 บิตดังนั้นการออกแบบการทดสอบใหม่จึงไม่ใช่คำแนะนำที่ใช้ได้จริง) ฉันกำลังพัฒนาใน Intellij IDEA ดังนั้นฉันจึงรู้ว่าฉันสามารถตั้งค่าพารามิเตอร์ JVM (เช่น -Xmx1024M) สำหรับคลาสทดสอบได้ อย่างไรก็ตามนี่เป็นเพียงการเรียกใช้คลาสทดสอบทั้งหมดเท่านั้น - หากฉันต้องการเรียกใช้การทดสอบแต่ละรายการฉันต้องสร้างคอนฟิกูเรชันการรันสำหรับวิธีทดสอบนั้นใหม่ นอกจากนี้สิ่งเหล่านี้ยังเป็น IDE และเฉพาะกล่องดังนั้นหากฉันเปลี่ยนกล่อง (ฉันพัฒนาในหลายเครื่อง) หรือเพื่อนร่วมงานคนใดคนหนึ่งพยายามเรียกใช้การทดสอบการตั้งค่าเหล่านั้นจะไม่ถูกถ่ายโอน (นอกจากนี้เพื่อนร่วมงานของฉันยังใช้ IDE อื่น ๆ เช่น Eclipse และ NetBeans) FWIW เราใช้ mercurial สำหรับการควบคุมซอร์สโค้ด สำหรับรอบการสร้างเราใช้ Maven ดังนั้นฉันจึงรู้วิธีระบุพารามิเตอร์ JVM สำหรับสิ่งนั้น ดังนั้น: - ฉันกำลังมองหาวิธีระบุพารามิเตอร์ JVM ที่จะใช้กับคลาสทดสอบทั้งหมดและวิธีการทดสอบแต่ละวิธี และ …

2
คุณจะข้ามการทดสอบหน่วยใน Django ได้อย่างไร
บังคับให้ข้ามการทดสอบหน่วยใน Django ได้อย่างไร @skipif และ @skipunless คือทั้งหมดที่ฉันพบ แต่ฉันแค่ต้องการข้ามการทดสอบในตอนนี้เพื่อจุดประสงค์ในการดีบักในขณะที่ฉันได้รับบางสิ่งที่ตรงไปตรงมา

3
อธิบายเมธอด Python“ setUp” และ“ tearDown” ที่ใช้ในกรณีทดสอบ
ใครสามารถอธิบายการใช้ Python setUpและtearDownวิธีการในขณะที่เขียนกรณีทดสอบนอกเหนือจากที่setUpเรียกว่าทันทีก่อนที่จะเรียกใช้วิธีการทดสอบและtearDownจะถูกเรียกทันทีหลังจากที่ถูกเรียก

4
วิธีสร้าง unit test ง่ายๆใน eclipse [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการสร้างการทดสอบหน่วยอย่างง่ายดายเพียงแค่เลือกวิธีการ มีเครื่องมือในคราสที่ทำเช่นนั้นได้หรือไม่ ควรสนับสนุนเทมเพลต ฉันควรจะสร้างแบบทดสอบเชิงบวกและแบบทดสอบเชิงลบได้

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
การทดสอบ JUnit พร้อมจำนวนการทดสอบแบบไดนามิก
ในโครงการของเราฉันมีการทดสอบJUnitหลายครั้งเช่นนำทุกไฟล์จากไดเร็กทอรีและรันการทดสอบ หากฉันใช้testEveryFileInDirectoryวิธีการในTestCaseนี้จะแสดงเป็นเพียงการทดสอบเดียวที่อาจล้มเหลวหรือประสบความสำเร็จ แต่ฉันสนใจผลลัพธ์ในแต่ละไฟล์ ฉันจะเขียนTestCase/ TestSuiteเพื่อให้แต่ละไฟล์แสดงเป็นการทดสอบแยกกันเช่นใน TestRunner แบบกราฟิกของ Eclipse ได้อย่างไร (การเข้ารหัสวิธีการทดสอบที่ชัดเจนสำหรับแต่ละไฟล์ไม่ใช่ตัวเลือก) เปรียบเทียบยังคำถามParameterizedTest ที่มีชื่อใน Eclipse TestRunner

20
ปัญหาเกี่ยวกับแอตทริบิวต์ DeploymentItem
ฉันกำลังดูแลระบบ "เก่า" ที่เขียนด้วยภาษา C # .net ลบคุณลักษณะที่ล้าสมัยและทำการปรับโครงสร้างใหม่ ขอบคุณพระเจ้าชายคนก่อนเขียนแบบทดสอบหน่วย (MSTests) ฉันค่อนข้างพอใจกับการทดสอบ JUnit แต่ยังไม่ได้ทำ MSTests มากนัก วิธีการทดสอบมีDeploymentItemแอตทริบิวต์ระบุไฟล์ข้อความซึ่งแยกวิเคราะห์โดยวิธีตรรกะทางธุรกิจที่กำลังทดสอบและลำดับที่ 2 DeploymentItemที่ระบุเพียงเส้นทางที่มีไฟล์ TIF จำนวนมากที่ต้องปรับใช้ [TestMethod()] [DeploymentItem(@"files\valid\valid_entries.txt")] [DeploymentItem(@"files\tif\")] public void ExistsTifTest() { ... } การทดสอบใช้งานได้ก่อนหน้านี้ แต่ตอนนี้ฉันต้องเปลี่ยนชื่อของไฟล์ TIF ที่อยู่ในไดเร็กทอรี \ files \ tif ตามกฎที่ชื่อไฟล์ TIF มีเพื่อให้ตรงกับรูปแบบบางอย่างซึ่งยังมีการตรวจสอบโดยExistsTifTest()วิธีการ ตอนนี้ฉันต้องเปลี่ยนชื่อไฟล์เพื่อปรับให้เข้ากับข้อกำหนดใหม่และไฟล์ TIF ก็ไม่ได้ถูกปรับใช้เหมือนเมื่อก่อน ใครช่วยบอกฉันหน่อยได้ไหมว่าทำไมสิ่งนี้ถึงเกิดขึ้นหรืออะไรอาจเป็นสาเหตุ สิ่งเดียวกันนี้จะเกิดขึ้นเช่นกันถ้าฉันเพิ่มไฟล์ข้อความใหม่พูดว่า "my2ndTest.txt" ข้าง "valid_entries.txt" ในไดเร็กทอรี \ files …

10
iOS - ไม่พบไฟล์ 'MyProject-Swift.h' เมื่อเรียกใช้การทดสอบหน่วยสำหรับ Swift
ฉันกำลังพยายามตั้งค่าการทดสอบหน่วยสำหรับโครงการของฉัน เป็นแอป Objective-C ที่มีอยู่ซึ่งฉันเพิ่งเพิ่มคลาส Swift ไปหนึ่งคลาส ฉันได้ตั้งค่าไฟล์ 'MyProject-Swift.h' และ Swift Bridging (ทั้ง 'MyProject' และ 'MyProjectTest') และฉันสามารถสร้างและเรียกใช้แอปได้โดยใช้ทั้งรหัส Objective-C และ Swift อย่างไรก็ตามตอนนี้ฉันต้องการเรียกใช้การทดสอบหน่วยในคลาส Swift ใหม่ ฉันตั้งค่าไฟล์ทดสอบและมีลักษณะดังต่อไปนี้: MySwiftClassTests.swift: import UIKit import XCTest import MyProject class MySwiftClassTests: XCTestCase { override func setUp() { super.setUp() // Put setup code here. This method is called before the …

4
ทำการทดสอบเพียงครั้งเดียวกับ Jest
ง่ายมากฉันต้องการเรียกใช้การทดสอบกับ Jest เพียงครั้งเดียว ฉันใส่it.onlyหรือdescribe.onlyแต่มันยังคงดำเนินการทดสอบมากมาย ฉันคิดว่ามันเรียกใช้การทดสอบทั้งหมดตั้งแต่การกระทำครั้งสุดท้ายของฉัน แต่มันไม่ควรมีพฤติกรรมเช่นนี้เมื่อonlyตั้งค่าสถานะไว้อย่างชัดเจนใช่ไหม อะไรเป็นสาเหตุของพฤติกรรมนี้และจะเรียกใช้การทดสอบเดี่ยวได้อย่างไร

17
ไม่พบการทดสอบสำหรับข้อผิดพลาดที่ระบุเมื่อเรียกใช้การทดสอบหน่วยพารามิเตอร์ใน Android Studio
ฉันลองเรียกใช้การทดสอบหน่วยพารามิเตอร์ตามด้านล่างใน Android Studio import android.test.suitebuilder.annotation.SmallTest; import junit.framework.TestCase; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; @RunWith(Parameterized.class) @SmallTest public class FibonacciTest extends TestCase { @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { {0, 0}, {1, 1}, {2, 1}, {3, 2}, {4, …

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