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

Java เป็นภาษาการเขียนโปรแกรมเชิงวัตถุในระดับสูงที่พัฒนาโดย Sun Microsystems ปัจจุบัน Java เป็นเจ้าของโดย Oracle ซึ่งซื้อ Sun ในปี 2010

4
ทำไมคอลเลกชัน Java จึงถูกนำไปใช้กับ“ วิธีการเสริม” ในอินเตอร์เฟส
ในระหว่างการนำไปใช้ครั้งแรกของฉันการขยายเฟรมเวิร์กคอลเลกชัน Java ฉันค่อนข้างประหลาดใจที่เห็นว่าอินเตอร์เฟสการรวบรวมมีวิธีการประกาศเป็นทางเลือก ผู้ดำเนินการคาดว่าจะโยน UnsupportedOperationExceptions หากไม่ได้รับการสนับสนุน สิ่งนี้ทำให้ฉันกลายเป็นตัวเลือกการออกแบบ API ที่แย่ทันที หลังจากอ่านหนังสือ "Effective Java" ที่ยอดเยี่ยมของ Joshua Bloch แล้วหลังจากเรียนรู้ว่าเขาอาจต้องรับผิดชอบต่อการตัดสินใจเหล่านี้ ฉันคิดว่าการประกาศอินเทอร์เฟซสองรายการ: คอลเลกชันและ MutableCollection ซึ่งขยายคอลเลกชันด้วยวิธีการ "ทางเลือก" จะทำให้รหัสลูกค้าที่บำรุงรักษาได้มากขึ้น มีบทสรุปที่ดีของปัญหาที่เป็นที่นี่ มีเหตุผลที่ดีหรือไม่ที่เลือกวิธีเสริมแทนที่จะใช้สองอินเตอร์เฟส

3
นี่เป็นการใช้วิธีรีเซ็ตที่เหมาะสมของ Mockito หรือไม่
ฉันมีวิธีส่วนตัวในชั้นทดสอบของฉันที่สร้างBarวัตถุที่ใช้กันทั่วไป คอนBarสตรัคsomeMethod()วิธีการโทรในวัตถุที่เยาะเย้ยของฉัน: private @Mock Foo mockedObject; // My mocked object ... private Bar getBar() { Bar result = new Bar(mockedObject); // this calls mockedObject.someMethod() } ในบางวิธีการทดสอบของฉันฉันต้องการตรวจสอบsomeMethodก็ถูกเรียกใช้โดยการทดสอบนั้น สิ่งต่อไปนี้: @Test public void someTest() { Bar bar = getBar(); // do some things verify(mockedObject).someMethod(); // <--- will fail } สิ่งนี้ล้มเหลวเนื่องจากวัตถุที่เยาะเย้ยได้someMethodเรียกใช้สองครั้ง ฉันไม่ต้องการวิธีการทดสอบของฉันจะดูแลเกี่ยวกับผลข้างเคียงของฉันgetBar()วิธีจึงจะเหมาะสมที่จะตั้งค่าวัตถุจำลองของฉันในตอนท้ายของgetBar()? private Bar …
68 java  mocking 

10
ทำไมภาษาต้องใช้วงเล็บในการแสดงออกเมื่อใช้กับ“ ถ้า” และ“ ในขณะที่”
ภาษาเช่น C, Java และ C ++ ทั้งหมดต้องวงเล็บรอบการแสดงออกทั้งเมื่อนำมาใช้ในการให้if, หรือwhileswitch if (true) { // Do something } ตรงข้ามกับ if true { // Do something } นี่ดูแปลกสำหรับฉันเพราะวงเล็บซ้ำซ้อน ในตัวอย่างtrueนี้เป็นการแสดงออกเพียงอย่างเดียวของมันเอง วงเล็บไม่เปลี่ยนความหมายในทางใดทางหนึ่งที่ฉันรู้ ทำไมไวยากรณ์แปลก ๆ นี้จึงมีอยู่และทำไมมันจึงเป็นเรื่องธรรมดา? มีประโยชน์ไหมที่ฉันไม่ทราบ?

16
โปรแกรมเมอร์ควรมีเสรีภาพเท่าไรในการเลือกภาษาและกรอบงาน?
ฉันเริ่มทำงานกับ บริษัท ที่เน้นภาษา C # เป็นหลัก เรามีบางคนที่ชอบ Java และ JRuby แต่โปรแกรมเมอร์ส่วนใหญ่ที่นี่เช่น C # ฉันถูกจ้างเพราะฉันมีประสบการณ์มากมายในการสร้างเว็บแอปพลิเคชันและเพราะฉันพึ่งพาเทคโนโลยีใหม่ ๆ เช่น JRuby บน Rails หรือ nodejs ฉันเพิ่งเริ่มต้นในโครงการสร้างเว็บแอปพลิเคชันโดยมุ่งเน้นที่การทำสิ่งต่าง ๆ มากมายในระยะเวลาอันสั้น ซอฟต์แวร์ที่เป็นผู้นำได้บอกว่าฉันใช้ mvc4 แทนราง อาจเป็นสิ่งที่ดียกเว้นฉันไม่รู้ mvc4 ฉันไม่รู้ C # และฉันเป็นคนเดียวที่รับผิดชอบในการสร้างเว็บแอปพลิเคชันเซิร์ฟเวอร์และ UI ส่วนหน้า มันจะไม่สมเหตุสมผลที่จะใช้เฟรมเวิร์กที่ฉันรู้จักดีมาก (Rails) แทนที่จะใช้ mvc4 หรือไม่? เหตุผลเบื้องหลังการตัดสินใจคือหัวหน้าฝ่ายเทคโนโลยีไม่ทราบว่า Jruby / ทางรถไฟและจะไม่มีทางนำรหัสนี้กลับมาใช้ใหม่ได้ อาร์กิวเมนต์ตัวนับ: เขาจะไม่ให้รหัสและตรงไปตรงมาไม่จำเป็นใน โครงการนี้ ดังนั้นมันไม่สำคัญว่าเขาจะรู้จัก JRuby / …

7
IntelliJ ดีกว่า Eclipse อย่างไร [ปิด]
ฉันรู้ว่ามีคำถามเช่นตัวแก้ไข / IDE ที่คุณชื่นชอบคืออะไร? แต่ไม่มีใครตอบคำถามนี้: ทำไมใช้เงินกับIntelliJเมื่อEclipseฟรี ฉันเป็นแฟนตัวยงของ IntelliJ แต่ฉันไม่ได้ลอง Eclipse ฉันใช้ IntelliJ สำหรับโครงการที่เป็น Java, JSP, HTML / CSS, Javascript, PHP และ Actionscript และเวอร์ชันล่าสุด 9 นั้นยอดเยี่ยมสำหรับพวกเขาทั้งหมด เพื่อนร่วมงานหลายคนในอดีตบอกฉันว่าพวกเขาเชื่อว่า Eclipse จะ "เหมือนกันมาก" กับ IntelliJ แต่เพื่อตอบโต้จุดนั้นฉันได้นั่งอยู่ข้างหลังนักพัฒนาที่ใช้ Eclipse ซึ่งดูเหมือนว่าจะไม่มีประสิทธิภาพเท่าที่ควร task) และฉันไม่เคยพบสิ่งนี้กับ IntelliJ คุณลักษณะเหล่านี้อาจอยู่ในรูปแบบต่อคุณลักษณะแต่คุณลักษณะอาจถูกทำลายโดยประสบการณ์ของผู้ใช้ที่ไม่ดีและฉันสงสัยว่าเป็นไปได้หรือไม่ที่ IntelliJ นั้นสามารถรับและค้นพบคุณสมบัติที่ช่วยประหยัดเวลาได้ง่ายขึ้น สำหรับผู้ใช้ที่คุ้นเคยกับ Eclipse แล้วนอกจากต้นทุนที่แท้จริงของ IntelliJ แล้วยังมีค่าใช้จ่ายในการเรียนรู้แอพใหม่ Eclipse ได้รับผู้ใช้จำนวนมากที่ไม่ต้องการใช้จ่าย $ 250 ใน …
67 java  ide  eclipse  intellij 

4
ระบบประเภท Haskell เป็นทางการเทียบเท่ากับ Java หรือไม่? [ปิด]
ฉันรู้ว่าบางสิ่งนั้นง่ายกว่า / ยากกว่าในหนึ่งภาษา แต่ฉันสนใจเฉพาะคุณลักษณะที่เกี่ยวข้องกับประเภทที่เป็นไปได้ในที่เดียวและเป็นไปไม่ได้ / ไม่เกี่ยวข้องในอีกภาษาหนึ่ง เพื่อให้มีความเฉพาะเจาะจงมากขึ้นเราจะไม่สนใจส่วนขยายประเภท Haskell เนื่องจากมีหลายสิ่งที่ทำอยู่ที่บ้า / เจ๋ง ๆ

21
“ อย่าเขียนโปรแกรมหลังจากเริ่มต้นอาชีพไปสองสามปี” นี่เป็นคำแนะนำที่ยุติธรรมหรือไม่? [ปิด]
ฉันเป็นนักพัฒนาที่มีประสบการณ์เล็กน้อยมีประสบการณ์เกี่ยวกับ PHP ประมาณ 5 ปีและค่อนข้างน้อยใน Java, C # และพยายามเรียนรู้ Python ในปัจจุบัน ตั้งแต่เริ่มต้นอาชีพของฉันในฐานะโปรแกรมเมอร์ฉันได้รับการบอกเล่าจากผู้เขียนโปรแกรมทุกคนในตอนนี้ว่าการเขียนโปรแกรมเหมาะสำหรับช่วงต้นปีสองสามปีของอาชีพ (ส่วนใหญ่ใช้เวลา 5 ปี) และต้องเปลี่ยนทิศทางหลังจาก มัน. เหตุผลที่พวกเขานำเสนอรวมถึงอาการปวดหัวและแรงกดดันที่เกี่ยวข้องกับการเขียนโปรแกรม พวกเขายังบอกด้วยว่าโปรแกรมเมอร์เขียนโปรแกรมไม่ค่อยเข้าสังคมและมักไม่ต้องการให้เวลากับครอบครัว ฯลฯ และโดยเฉพาะอย่างยิ่ง "โอ้มาเถอะคุณไม่สามารถเขียนโปรแกรมตลอดชีวิตของคุณได้!" ฉันค่อนข้างสับสนที่นี่และต้องถามคนอื่นเกี่ยวกับเรื่องนี้ ถ้าฉันออกจากการเขียนโปรแกรมแล้วฉันจะทำอย่างไร? ฉันคิดว่าการสอนอาจเป็นทางเลือกที่ดีในกรณีนี้ แต่อาจจะต้องได้รับปริญญาเอกก่อน นอกจากนี้ยังอาจเป็นที่น่าสังเกตว่าในประเทศของฉัน (ปากีสถาน) ชีวิตของโปรแกรมเมอร์ไม่ค่อยดีนักโดยปกติแล้วพวกเขาจะต้องให้เวลาเพิ่ม 2-3 ชั่วโมงในสำนักงานเพื่อให้งานเขียนโปรแกรมเร่งด่วน ฉันรู้สึกว่าสถานการณ์ค่อนข้างคล้ายกันในประเทศและภูมิภาคอื่น ๆ เช่นกัน คุณคิดว่าเป็นคำแนะนำที่เป็นธรรมในการเปลี่ยนอาชีพจากการเขียนโปรแกรมเป็นอย่างอื่นหลังจากใช้เวลา 5 ปีในสาขานี้หรือไม่? UPDATE โอ้ว้าว ... ฉันไม่เคยรู้เลยว่าผู้คนจะมีประสบการณ์มากกว่า 40 ปีในสาขานี้ ฉันทั้งตื่นเต้นและประหลาดใจเมื่อเห็นว่าผู้คนกำลังทำมันตั้งแต่ปี 1971 ... นั่นหมายถึง 15 ปีก่อนที่ฉันจะเกิด! เป็นเรื่องดีที่ได้พูดคุยกับคนที่มีประสบการณ์เราไม่ได้รับโอกาสที่นี่ในปากีสถาน …

3
ทำไมคลาส Java 8 java.time จึงขาดวิธี getMillis ()
Java 8 มีไลบรารีใหม่ทั้งหมดสำหรับวันที่และเวลาในแพคเกจ java.time ซึ่งเป็นสิ่งที่น่ายินดีอย่างมากสำหรับทุกคนที่ต้องใช้ JodaTime มาก่อนหรือสร้างความยุ่งยากด้วยการทำให้เป็นวิธีการประมวลผลตัวช่วยนัดเดทเอง ชั้นเรียนจำนวนมากในแพ็คเกจนี้เป็นตัวแทนของการประทับเวลาและมีวิธีการช่วยเหลือที่getHour()จะได้รับชั่วโมงจากการประทับเวลาที่getMinute()จะได้รับนาทีจากการประทับเวลาที่getNano()จะได้รับ nanos จากการประทับเวลา ฯลฯ ... ฉันสังเกตเห็นว่าพวกเขาไม่มีวิธีที่เรียกว่าgetMillis()รับมิลลิวินาทีของการประทับเวลา แต่จะต้องมีวิธีการโทรget(ChronoField.MILLI_OF_SECOND)แทน สำหรับฉันดูเหมือนว่าไม่สอดคล้องกันในห้องสมุด ไม่มีใครรู้ว่าทำไมวิธีการดังกล่าวหายไปหรือเป็น Java 8 ยังอยู่ในการพัฒนามีความเป็นไปได้ที่จะเพิ่มในภายหลัง? https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html คลาสที่กำหนดไว้ที่นี่แสดงถึงแนวคิดหลักของวันที่และเวลารวมถึงอินสแตนซ์, ระยะเวลา, วันที่, เวลา, เขตเวลาและช่วงเวลา พวกเขาใช้ระบบปฏิทิน ISO ซึ่งเป็นปฏิทินโลกตามความเป็นจริงตามกฎเกรกอเรียน ชั้นเรียนทั้งหมดไม่เปลี่ยนแปลงและปลอดภัยต่อเธรด แต่ละอินสแตนซ์เวลาของวันที่ประกอบด้วยฟิลด์ที่ APIs ให้บริการ สำหรับการเข้าถึงระดับล่างไปยังฟิลด์อ้างถึงjava.time.temporalแพคเกจ แต่ละชั้นเรียนมีการสนับสนุนสำหรับการพิมพ์และการแยกวิเคราะห์ทุกวันและเวลา อ้างถึงjava.time.formatแพ็คเกจสำหรับตัวเลือกการปรับแต่ง ... ตัวอย่างของคลาสประเภทนี้: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html วันที่และเวลาที่ไม่มีเขตเวลาในระบบปฏิทิน ISO-8601 เช่น 2007-12-03T10: 15: 30 LocalDateTimeเป็นออบเจ็กต์วันที่และเวลาที่ไม่เปลี่ยนรูปแบบซึ่งแสดงถึงวันที่และเวลาซึ่งมักถูกมองว่าเป็นปีเดือนเดือนวันชั่วโมงนาทีวินาที ฟิลด์วันที่และเวลาอื่น ๆ เช่นวันของปีวันของสัปดาห์และสัปดาห์ของปีก็สามารถเข้าถึงได้เช่นกัน เวลาแสดงด้วยความแม่นยำระดับนาโนวินาที ตัวอย่างเช่นค่า …
64 java  java8 

6
Service layer vs DAO - ทำไมต้องทั้งคู่
ฉันทำงานกับ SpringMVC, Hibernate และฐานข้อมูลบางส่วนในตัวอย่างเว็บแอปพลิเคชัน java มีสิ่งที่แตกต่างกันสองสามอย่างที่ทำเช่นนี้ แต่บทช่วยสอนการรวมฤดูใบไม้ผลิ 3 และไฮเบอร์เนตพร้อมด้วยตัวอย่างนี้มีคลาสโมเดลมุมมอง (เป็น jsp) และคลาสเซอร์วิสและ dao สำหรับคอนโทรลเลอร์ คำถามของฉันคือไม่ทั้งบริการและชั้นเรียน DAO ทำสิ่งเดียวกันหรือไม่ ทำไมคุณต้องการทั้งสองอย่าง นี่คือการสอนที่ฉันใช้จริง: http://fruzenshtein.com/spring-mvc-security-mysql-hibernate/

4
เหตุผลที่จะไม่ใช้ JSF [ปิด]
ฉันใหม่กับ StackExchange แต่ฉันคิดว่าคุณจะสามารถช่วยฉันได้ เรากำลังสร้างแอปพลิเคชัน Java Enterprise ใหม่แทนที่โซลูชัน JSP ดั้งเดิม เนื่องจากมีการเปลี่ยนแปลงมากมาย UI และส่วนต่างๆของตรรกะทางธุรกิจจะได้รับการพิจารณาและนำมาใช้ใหม่อย่างสมบูรณ์ ความคิดแรกของเราคือ JSF เนื่องจากเป็นมาตรฐานใน Java EE ตอนแรกฉันมีความประทับใจที่ดี แต่ตอนนี้ฉันกำลังพยายามใช้ต้นแบบการทำงานและมีข้อกังวลอย่างจริงจังเกี่ยวกับการใช้งาน ก่อนอื่นมันสร้างการผสมผสานที่ไม่ถูกต้องที่เลวร้ายที่สุดและยุ่งเหยิงที่สุดที่ไม่เคยมีมาก่อนซึ่งฉันไม่เคยเห็นมาก่อน มันละเมิดกฎทุกข้อที่ฉันได้เรียนรู้ในการพัฒนาเว็บ นอกจากนี้มันจะรวมเข้าด้วยกันสิ่งที่ไม่ควรเชื่อมโยงกันอย่างแน่นหนา: เค้าโครงการออกแบบลอจิกและการสื่อสารกับเซิร์ฟเวอร์ ฉันไม่เห็นวิธีที่ฉันจะสามารถขยายผลลัพธ์นี้ได้อย่างสะดวกสบายไม่ว่าจะเป็นการจัดแต่งทรงผมด้วย CSS, การเพิ่มลูกกวาด UI (เช่นปุ่มลัดที่สามารถกำหนดค่าได้, วิดเจ็ตลากและวาง) หรืออะไรก็ตาม ประการที่สองมันซับซ้อนเกินไป ความซับซ้อนของมันโดดเด่น หากคุณถามฉันมันเป็นนามธรรมที่ไม่ดีของเทคโนโลยีเว็บพื้นฐานพิการและไร้ประโยชน์ในที่สุด ฉันมีประโยชน์อะไรบ้าง ไม่มีถ้าคุณคิด ส่วนประกอบหลายร้อย ฉันเห็นตัวอย่างโค้ด HTML / CSS หมื่นตัวอย่างโค้ด JavaScript นับหมื่นและปลั๊กอิน jQuery นับพัน มันแก้ปัญหาได้มากมาย - เราจะไม่มีถ้าเราไม่ใช้ JSF หรือรูปแบบตัวควบคุมด้านหน้าเลย …

1
Java เวอร์ชันต่าง ๆ เหล่านี้มีไว้เพื่ออะไร?
ฉันเพิ่งจะเริ่มต้นการเดินทาง Java ของฉัน(ฉัน dabbled แล้วใน C ++) แต่ฉันสับสนจริงๆเกี่ยวกับ Java รุ่นต่างๆทั้งหมด: JavaSE JavaEE JavaFX เป็นต้น มีคนอธิบายรายละเอียดเหล่านี้ได้ไหม?
63 java  java-ee  javafx 

4
การเขียนโปรแกรมที่ใช้งานได้เร็วขึ้นในการมัลติเธรดเพราะฉันเขียนสิ่งต่าง ๆ หรือเพราะสิ่งต่าง ๆ ถูกคอมไพล์แตกต่างกันหรือไม่
ฉันดำดิ่งสู่โลกแห่งการเขียนโปรแกรมที่ใช้งานได้และฉันอ่านต่อไปทุกที่ว่าภาษาที่ใช้งานได้ดีกว่าสำหรับโปรแกรมมัลติเธรด / มัลติคอร์ ผมเข้าใจว่าภาษาทำงานทำสิ่งต่างๆมากมายที่แตกต่างกันเช่นการเรียกซ้ำ , สุ่มตัวเลขฯลฯ แต่ฉันไม่สามารถดูเหมือนจะคิดออกว่า multithreading เร็วในภาษาทำงานเพราะมันรวบรวมแตกต่างกันหรือเพราะฉันเขียนมันแตกต่างกัน ตัวอย่างเช่นฉันได้เขียนโปรแกรมใน Java ซึ่งใช้โปรโตคอลที่แน่นอน ในโปรโตคอลนี้ทั้งสองฝ่ายส่งและรับถึงกันนับพันข้อความพวกเขาเข้ารหัสข้อความเหล่านั้นและส่งพวกเขาอีกครั้ง (และรับพวกเขา) อีกครั้งและอีกครั้ง ตามที่คาดไว้การมัลติเธรดเป็นกุญแจสำคัญเมื่อคุณจัดการในระดับพัน ในโปรแกรมนี้มีการล็อคไม่เกี่ยวข้องกับ ถ้าฉันเขียนโปรแกรมเดียวกันใน Scala (ซึ่งใช้ JVM) การดำเนินการนี้จะเร็วขึ้นหรือไม่ ถ้าใช่ทำไม มันเป็นเพราะสไตล์การเขียนหรือไม่? ถ้าเป็นเพราะสไตล์การเขียนตอนนี้ที่ Java รวมแลมบ์ดานิพจน์แล้วฉันไม่สามารถบรรลุผลลัพธ์เดียวกันโดยใช้ Java กับแลมบ์ดาได้หรือไม่? หรือเร็วกว่านี้เพราะสกาล่าจะรวบรวมสิ่งต่าง ๆ ?


11
เหตุใดจึงเป็นการดีที่จะแยกโปรแกรมออกเป็นหลายคลาส [ปิด]
ฉันยังเป็นนักเรียนในโรงเรียนมัธยม (เข้าเกรด 10) และฉันยังไม่ได้เรียนหลักสูตรคอมพิวเตอร์จริงในโรงเรียน ทุกสิ่งที่ฉันทำจนถึงตอนนี้ก็คือผ่านหนังสือ หนังสือเหล่านั้นสอนฉันเกี่ยวกับแนวคิดเช่นการสืบทอด แต่การแบ่งโปรแกรมออกเป็นหลาย ๆ ชั้นช่วยได้อย่างไร หนังสือไม่เคยบอกฉัน ฉันถามสิ่งนี้เป็นหลักเพราะโครงการล่าสุด มันเป็นวิดีโอเกมอาร์เคดเหมือนกับเกม Flash ที่บางคนพูด (แม้ว่าฉันไม่รู้ว่าเกม Flashคืออะไร) มันเป็นเพียงชั้นเดียวเท่านั้น มันใช้งานได้ดีอย่างสมบูรณ์แบบ (ล่าช้าเล็กน้อยเป็นครั้งคราว) ด้วยชั้นเรียนเพียงชั้นเดียว ดังนั้นฉันแค่ถามว่าการแยกมันออกเป็นหลายคลาสจะช่วยได้อย่างไร โครงการนี้อยู่ใน Java และฉันเป็นคนเดียวที่ทำงานกับมันสำหรับการบันทึก

7
วิธีจัดการกับคลาสยูทิลิตี้สแตติกเมื่อออกแบบเพื่อทดสอบ
เราพยายามออกแบบระบบของเราให้สามารถทดสอบได้และส่วนใหญ่พัฒนาโดยใช้ TDD ขณะนี้เรากำลังพยายามแก้ไขปัญหาต่อไปนี้: ในสถานที่ต่าง ๆ เราจำเป็นต้องใช้วิธีการช่วยเหลือแบบคงที่เช่น ImageIO และ URLEncoder (ทั้ง Java API มาตรฐาน) และห้องสมุดอื่น ๆ อีกมากมายที่ประกอบด้วยวิธีคงที่ส่วนใหญ่ (เช่นไลบรารี Apache Commons) แต่มันยากมากที่จะทดสอบวิธีการเหล่านั้นที่ใช้คลาสตัวช่วยแบบคงที่ ฉันมีความคิดหลายอย่างสำหรับการแก้ปัญหานี้: ใช้เฟรมเวิร์กจำลองที่สามารถจำลองคลาสแบบคงที่ (เช่น PowerMock) นี่อาจเป็นทางออกที่ง่ายที่สุด แต่ก็รู้สึกอยากยอมแพ้ สร้างคลาส wrapper ทันทีที่มีรอบยูทิลิตี้คงที่เหล่านั้นเพื่อให้พวกเขาสามารถฉีดเข้าไปในชั้นเรียนที่ใช้พวกเขา ดูเหมือนว่าจะเป็นคำตอบที่ค่อนข้างสะอาด แต่ฉันกลัวว่าเราจะจบลงด้วยการสร้างคลาส wrapper เหล่านั้น แยกการเรียกคลาสผู้ช่วยแบบคงที่เหล่านี้ลงในฟังก์ชันที่สามารถแทนที่ได้และทดสอบคลาสย่อยของคลาสที่ฉันต้องการทดสอบจริง ๆ แต่ฉันคิดอยู่เสมอว่านี่จะเป็นปัญหาที่หลายคนต้องเผชิญเมื่อทำ TDD - ดังนั้นจะต้องมีวิธีแก้ไขปัญหานี้อยู่แล้ว กลยุทธ์ที่ดีที่สุดในการรักษาคลาสที่ใช้ตัวช่วยคงที่สามารถทดสอบได้คืออะไร

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