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

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

14
ฉันจะปิดการใช้งานการบันทึกในขณะที่ทำการทดสอบหน่วยใน Python Django ได้อย่างไร
ฉันใช้นักทดสอบทดสอบพื้นฐานเพื่อทดสอบแอปพลิเคชัน Django ของฉัน แอปพลิเคชันของฉันถูกกำหนดค่าให้ใช้ตัวบันทึกพื้นฐานใน settings.py โดยใช้: logging.basicConfig(level=logging.DEBUG) และในรหัสแอปพลิเคชันของฉันโดยใช้: logger = logging.getLogger(__name__) logger.setLevel(getattr(settings, 'LOG_LEVEL', logging.DEBUG)) อย่างไรก็ตามเมื่อเรียกใช้ unittests ฉันต้องการปิดใช้งานการบันทึกเพื่อไม่ให้ส่งผลการทดสอบของฉันยุ่งเหยิง มีวิธีง่าย ๆ ในการปิดการบันทึกในลักษณะสากลหรือไม่เพื่อให้โปรแกรมบันทึกเฉพาะแอปพลิเคชันไม่ได้เขียนเนื้อหาลงในคอนโซลเมื่อฉันทำการทดสอบ

27
“ ไม่มีโมดูลดังกล่าว” เมื่อใช้ @testable ในการทดสอบ Xcode Unit
ฉันเพิ่งปรับปรุงเป็น Xcode 7 beta 5 ฉันพยายามเพิ่มการทดสอบหน่วยในโครงการก่อนหน้านี้ แต่ฉันได้รับข้อความแสดงข้อผิดพลาด "ไม่มีโมดูลดังกล่าว [myModuleName]" ใน@testable import myModuleNameบรรทัด ฉันเหนื่อย ทำความสะอาดโครงการด้วยOptionClean Build Folder ตรวจสอบว่า "Enable Testability" (debug) ถูกตั้งค่าเป็น Yes ใน Build Options การลบเป้าหมายการทดสอบแล้วเพิ่มชุดการทดสอบหน่วย iOS อีกครั้ง สิ่งนี้ไม่ได้ผลสำหรับโครงการนี้ (แต่ฉันได้รับการทดสอบเพื่อทำงานในโครงการอื่น) มีคนอื่นที่มีปัญหานี้และแก้ไขมันได้หรือไม่

11
วัตถุประสงค์ของการจำลองวัตถุคืออะไร?
ฉันยังใหม่กับการทดสอบหน่วยและฉันได้ยินคำว่า 'วัตถุจำลอง' อย่างต่อเนื่องโยนไปมามาก ในแง่ของคนธรรมดาคนสามารถอธิบายว่าอะไรคือวัตถุจำลองและสิ่งที่พวกเขามักจะใช้เมื่อเขียนการทดสอบหน่วย?

30
Visual Studio 2015 หรือ 2017 ไม่พบการทดสอบหน่วย
แก้ไข 2016-10-19: คำถามเดิมเป็นเรื่องเกี่ยวกับปัญหาเฉพาะของ VS2015 CTP6 ที่มีตัวทดสอบ XUnit เห็นได้ชัดจากคำตอบที่ว่ามีปัญหาในวงกว้างมากขึ้นด้วยการค้นพบการทดสอบหน่วยใน Visual Studio ซึ่งอาจเกิดขึ้นในหลาย ๆ สถานการณ์ ฉันได้ล้างคำถามของฉันเพื่อสะท้อนว่า ฉันได้รวมสคริปต์ไว้ในคำตอบของฉันเองที่ฉันยังคงใช้มาจนถึงทุกวันนี้เพื่อแก้ไขปัญหาที่คล้ายกันเมื่อปรากฏ คำตอบอื่น ๆ อีกมากมายได้รับการพิสูจน์แล้วว่าเป็นประโยชน์ในการทำความเข้าใจความซับซ้อนของนักวิ่งทดสอบ VS ฉันขอขอบคุณที่ผู้คนยังคงแบ่งปันโซลูชันของพวกเขา! คำถามเดิม 2015-04-10: ตั้งแต่เมื่อวาน, Visual Studio Test Explorer ของฉันจะไม่ค้นพบการทดสอบสำหรับโครงการใด ๆ ของฉัน มันไม่แสดงแถบโหลดสีเขียวหลังการสร้างเช่นกัน เมื่อฉันไปที่ Visual Studio Test Explorer และคลิก "Run All" หรือเมื่อฉันคลิกขวาที่วิธีทดสอบและเลือก "Run Tests" ฉันได้รับสิ่งต่อไปนี้ในหน้าต่างแสดงผลของฉัน: Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, …

12
ยืนยันเท่ากับระหว่าง 2 รายการใน Junit
ฉันจะยืนยันความเท่าเทียมกันระหว่างรายการในกรณีทดสอบJUnit ได้อย่างไร ความเท่าเทียมกันควรอยู่ระหว่างเนื้อหาของรายการ ตัวอย่างเช่น: List<String> numbers = Arrays.asList("one", "two", "three"); List<String> numbers2 = Arrays.asList("one", "two", "three"); List<String> numbers3 = Arrays.asList("one", "two", "four"); // numbers should be equal to numbers2 //numbers should not be equal to numbers3

6
ใช้กรณีทดสอบเฉพาะใน Django เมื่อแอปของคุณมีไดเรกทอรีทดสอบ
เอกสาร Django ( http://docs.djangoproject.com/en/1.3/topics/testing/#running-tests ) บอกว่าคุณสามารถเรียกใช้กรณีทดสอบเฉพาะบุคคลได้โดยระบุ: $ ./manage.py test animals.AnimalTestCase นี่ถือว่าคุณมีการทดสอบในไฟล์ tests.py ในแอปพลิเคชัน Django ของคุณ หากสิ่งนี้เป็นจริงคำสั่งนี้จะทำงานเหมือนที่คาดไว้ ฉันมีแบบทดสอบสำหรับแอปพลิเคชัน Django ในไดเรกทอรีการทดสอบ: my_project/apps/my_app/ ├── __init__.py ├── tests │ ├── __init__.py │ ├── field_tests.py │ ├── storage_tests.py ├── urls.py ├── utils.py └── views.py tests/__init__.pyไฟล์มีห้องสวีท () ฟังก์ชัน: import unittest from my_project.apps.my_app.tests import field_tests, storage_tests def …

21
การทดสอบหน่วย: DateTime.Now
ฉันมีการทดสอบหน่วยที่คาดว่า 'เวลาปัจจุบัน' จะแตกต่างจาก DateTime ตอนนี้และฉันไม่ต้องการเปลี่ยนเวลาของคอมพิวเตอร์อย่างชัดเจน กลยุทธ์ที่ดีที่สุดในการบรรลุเป้าหมายนี้คืออะไร?

10
การทดสอบหน่วย Node.js [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ มีกรอบการทดสอบ node.js ที่ดี (ฝั่งเซิร์ฟเวอร์ js) หรือไม่? ฉันกำลังมองหาบางสิ่งที่ลึกกว่าโมดูล Assert ที่ให้มาเล็กน้อย

9
คุณจะเขียนการทดสอบสำหรับส่วน argparse ของโมดูลหลามได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดเมื่อเดือนที่แล้ว ปรับปรุงคำถามนี้ ฉันมีโมดูล Python ที่ใช้ไลบรารี argparse ฉันจะเขียนการทดสอบสำหรับส่วนของรหัสฐานได้อย่างไร

3
จะใช้ ArgumentCaptor เพื่อทำการขัดได้อย่างไร?
ในเอกสาร Mockito และjavadocsนั้นระบุไว้ ขอแนะนำให้ใช้ ArgumentCaptor กับการตรวจสอบ แต่ไม่ใช่ด้วยการขัด แต่ฉันไม่เข้าใจว่า ArgumentCaptor สามารถใช้สำหรับขัดถูได้อย่างไร บางคนสามารถอธิบายข้อความข้างต้นและแสดงให้เห็นว่า ArgumentCaptor สามารถใช้สำหรับการขัดหรือจัดเตรียมลิงก์ที่แสดงวิธีการทำ

4
เปลี่ยนการหมดเวลาเริ่มต้นของมอคค่า
หากเรามีไฟล์ทดสอบหน่วย my-spec.js และทำงานกับมอคค่า: mocha my-spec.js การหมดเวลาเริ่มต้นจะเป็น 2000 มิลลิวินาที สามารถเขียนทับสำหรับการทดสอบบางส่วนด้วยพารามิเตอร์บรรทัดคำสั่ง: mocha my-spec.js --timeout 5000 เป็นไปได้หรือไม่ที่จะเปลี่ยนการหมดเวลาเริ่มต้นทั่วโลกสำหรับการทดสอบทั้งหมด? เช่นค่าการหมดเวลาเริ่มต้นจะแตกต่างจาก 2000 ms เมื่อคุณโทร: mocha my-spec.js

12
วิธีทดสอบประเภทของข้อยกเว้นการโยนใน Jest
ฉันกำลังทำงานกับโค้ดบางอย่างที่ฉันต้องการทดสอบประเภทของข้อยกเว้นที่เกิดจากฟังก์ชัน (เป็น TypeError, ReferenceError ฯลฯ ) กรอบการทดสอบปัจจุบันของฉันคือ AVA และฉันสามารถทดสอบเป็นt.throwsวิธีการโต้แย้งที่สองได้เช่นที่นี่: it('should throw Error with message \'UNKNOWN ERROR\' when no params were passed', (t) => { const error = t.throws(() => { throwError(); }, TypeError); t.is(error.message, 'UNKNOWN ERROR'); }); ฉันเริ่มเขียนการทดสอบของฉันใหม่เป็น Jest และไม่พบวิธีการทำแบบนั้นง่ายๆ เป็นไปได้หรือไม่?

11
Python - doctest vs. unittest [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันพยายามเริ่มต้นด้วยการทดสอบหน่วยใน Python และฉันสงสัยว่าใครบางคนสามารถอธิบายข้อดีและข้อเสียของ doctest และ unittest คุณจะใช้เงื่อนไขอะไรในแต่ละเงื่อนไข

7
การทดสอบหน่วยว่าเหตุการณ์เพิ่มขึ้นใน C # (ตามลำดับ)
ฉันมีรหัสบางอย่างที่ทำให้เกิดPropertyChangedเหตุการณ์และฉันต้องการที่จะทดสอบหน่วยว่าเหตุการณ์นั้นได้รับการยกอย่างถูกต้อง รหัสที่เพิ่มเหตุการณ์เป็นเหมือน public class MyClass : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } public string MyProperty { set { if (_myProperty != value) { _myProperty = value; NotifyPropertyChanged("MyProperty"); } } } } ฉันได้รับการทดสอบสีเขียวที่ดีจากรหัสต่อไปนี้ในการทดสอบหน่วยของฉันซึ่งใช้ผู้ได้รับมอบหมาย: [TestMethod] public void …
160 c#  unit-testing  events 

3
ใช้ Moq เพื่อตรวจสอบว่ามีการเรียกใช้เมธอดหรือไม่
เป็นความเข้าใจของฉันที่ฉันสามารถทดสอบว่าการเรียกใช้เมธอดจะเกิดขึ้นหากฉันเรียกเมธอดระดับสูงกว่าเช่น: public abstract class SomeClass() { public void SomeMehod() { SomeOtherMethod(); } internal abstract void SomeOtherMethod(); } ฉันต้องการทดสอบว่าถ้าฉันโทรSomeMethod()แล้วฉันคาดว่ามันSomeOtherMethod()จะถูกเรียก ฉันคิดถูกหรือเปล่าว่าการทดสอบประเภทนี้มีอยู่ในกรอบการเยาะเย้ยหรือไม่
159 c#  .net  unit-testing  mocking  moq 

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