Java: Sử Dụng Assertion | V1Study

Học viện Đào tạo và Công nghệ V1Study
  • Đào tạo Độ tuổi từ 5 - 11 Độ tuổi từ 12 - 17 Từ 18 tuổi
  • Lập trình Python Lập trình C C++ Java C# - C Sharp Android Scratch Pascal Robot mBot
  • Web ReactJS HTML5 CSS3 JavaScript Node.js JSP ASP.NET Core jQuery PHP
  • FW-CMS Laravel AngularJS Flutter Magento Bootstrap VueJS CodeIgnitor WordPress Sass Drupal
  • Video Video Python Video Lập trình C Video C# Video Java Video HTML5-CSS3-JavaScript Video SQL Server Video PHP Video jQuery Video Android Video C++ Video Scratch
  • Video1 Video XML-JSON Video MySQL Video Excel Video Giải thuật và Lập trình Video Sức khỏe Video Drupal Video mBot Video Giáo dục - Khoa học
  • Other Unity Giải thuật và lập trình Giải thuật và lập trình - C CCNA Mạng máy tính Design Patterns English Facebook SEO Git Tin học đại cương Japanese App-Uti Download
  • Data SQL Server XML JSON MySQL
  • News
Học viện Đào tạo và Công nghệ V1Study ≡ Java Java Core Giới thiệu Download, cài đặt và chạy Kiểu dữ liệu Từ khóa, tên riêng, ghi chú Biến & Hằng Phép toán (Operator) Nhập liệu với Scanner và System.in.read() Bài tập Java cơ bản Điều kiện if-else Điều kiện switch-case Bài tập phần điều kiện Vòng lặp for và for cải tiến while do-while break và continue Bài tập phần vòng lặp Mảng một chiều trong Java Mảng hai chiều trong Java Bài tập phần mảng số Bài tập phần chuỗi và mảng chuỗi Hàm (Function) Bài tập phần hàm ArrayList trong Java Quản lý bộ nhớ trong Java Tìm hiểu về đối tượng StringBuilder trong Java Cách xuống dòng mới khi dùng NetBean hay IntelliJ enum trong Java Hướng đối tượng (OOP) Lớp (Class) và Đối tượng (Object) Truy cập các thuộc tính và phương thức của đối tượng Hàm tạo (Constructor) Bộ khởi tạo cho đối tượng Từ khóa this Bài tập phần Class Từ khóa static Thừa kế (Inheritant) Ghi đè phương thức (Override) Từ khóa super Đa hình (Polymorphism) Bài tập phần Thừa kế & Đa hình Đóng gói (Encapsulation) Trừu tượng (Abstract) Interface (Giao diện) Bài tập phần Abstract Class & Interface Kiểu liệt kê Lớp lồng nhau (Nested Classes) Exceptions Ngoại lệ là gì? Bắt hoặc chỉ định yêu cầu Khối try Khối catch Khối finally Câu lệnh try-with-resources Cách sử dụng try-catch-finally Xác định những ngoại lệ được ném bởi một phương thức Dùng throw để ném ngoại lệ Ngoại lệ kết chuỗi (Chained Exception) Tạo lớp ngoại lệ Ngoại lệ unchecked - Tranh luận Ưu điểm của ngoại lệ throw và throws Ngoại lệ tự định nghĩa KIỂM TRA KIẾN THỨC EXCEPTION Câu hỏi và bài tập phần Exception Functions Hàm xử lý chuỗi (String) Hàm toán học (Math) Hàm Date & Time Video Demo Nhập liệu bằng Scanner trong Java In các số từ 0 đến 100 dùng vòng lặp for Xác định tính nguyên tố Cách khai báo biến trong Java Xác định chính phương Xác định số nguyên hay thực Tìm số nguyên tố trong một khoảng In ra các số chẵn chia hết cho 3 Giải phương trình bậc nhất Giải phương trình bậc hai Nguyên âm, phụ âm hay ký số Cách tạo lớp và đối tượng Cách tạo các getter và setter Cách định nghĩa hàm tạo Cách sử dụng các getter và setter Cách tạo mảng Cách nhập liệu cho mảng Cách tìm Max và Min trong mảng Cách sắp xếp mảng Xóa phần tử có chỉ số cụ thể khỏi mảng Xóa phần tử chứa giá trị cụ thể khỏi mảng Cách dùng ArrayList và viết chương trình dạng Menu Nhập vào 10 số nguyên rồi loại bỏ những giá trị trùng lặp Xóa những phần tử trùng nhau Tuts Cách thay đổi kích thước text trong IntelliJ Một số phím tắt trong IntelliJ IDEA Cách tạo ảnh nền cho jFrame Form Cách sử dụng các class từ project khác API Collection Sắp xếp trong collection Gói java.util Framework Collections Interface Collection List ArrayList Vector LinkedList Set SortedSet HashSet LinkedHashSet Lớp TreeSet Map HashMap Hashtable TreeMap LinkedHashMap Queue PriorityQueue Arrays Sắp xếp Collections Các cải tiến trong các lớp Collections KIỂM TRA KIẾN THỨC COLLECTIONS CÂU HỎI VÀ BÀI TẬP COLLECTIONS Phương thức Collections.synchronizedList() và ví dụ So sánh ArrayList và Vector Generics Tổng quan về Generics Lớp generic Phương thức generic Kiểu suy luận (Type Inference) Collection và Generic Khả năng tương tác với Generics KIỂM TRA KIẾN THỨC GENERICS CÂU HỎI VÀ BÀI TẬP GENERICS Regular Expression Giới thiệu biểu thức chính quy Kiểm tra dữ liệu (Test Harness) Hằng chuỗi Lớp Character Các lớp ký tự định nghĩa trước Bộ định lượng (Quantifier) Nhóm thu thập So khớp ranh giới Các phương thức của lớp Pattern Các phương thức của lớp Matcher Các phương thức của lớp PatternSyntaxException Hỗ trợ Unicode Lớp Pattern Lớp Matcher Bài tập phần Biểu thức chính quy Gói java.lang Giới thiệu Lớp Object Bộ dọn rác (Garbage Collector) Các lớp Wrapper Hàm toán học (Math) Lớp System Lớp Class Hàm xử lý chuỗi (String) KIỂM TRA KIẾN THỨC JAVA.LANG Taught Thừa kế (Inheritant) Chữa bài tập 1 phần thừa kế Trừu tượng (Abstract) và Đa hình (Polymorphism) Interface Lớp generic try-catch-finally Thao tác với MySQL Java IO Giới thiệu I/O Stream Byte Stream Character Stream Buffered Stream Scanning và Formatting I/O từ Command Line Data Stream Object Stream Đường dẫn là gì? (và sự kiện hệ thống tập tin khác) Lớp Path Các hoạt động với File Kiểm tra tập tin hoặc thư mục Xóa tập tin hoặc thư mục Sao chép tập tin hoặc thư mục Di chuyển tập tin hoặc thư mục Quản lý siêu dữ liệu (File và File lưu các thuộc tính) Đọc, ghi và tạo tập tin Tập tin truy cập ngẫu nhiên Tạo và đọc thư mục Liên kết, liên kết tượng trưng hay không phải Đi bộ qua cây tập tin Tìm tập tin Quan sát sự thay đổi thư mục Các phương thức hữu dụng khác Kế thừa mã lệnh tập tin I/O Cách tạo và chèn dữ liệu vào file Excel Java DOM Parser - Đọc, tạo, sửa tài liệu XML KIỂM TRA KIẾN THỨC JAVA IO Câu hỏi và bài tập phần java.io file Java NIO Lớp Console Gói java.util.zip Lớp Deflater Lớp Inflater Lớp DeflaterInputStream Lớp DeflaterOutputStream Các lớp InflaterInputStream và InflaterOutputStream Gói java.nio Lớp Files và các thuộc tính KIỂM TRA KIẾN THỨC JAVA NIO Concurrency - Thread Tiến trình (Progress) và Luồng (Thread) Định nghĩa và khởi tạo Thread Dừng thực thi với phương thức Thread.sleep() Ngắt và kết nối Thread Ví dụ SimpleThreads Giao thoa luồng Lỗi nhất quán bộ nhớ Phương thức đồng bộ hóa Khóa nội tại và đồng bộ hóa Truy cập atomic Liveness Khối bảo vệ Đối tượng bất biến Đối tượng Lock Giao diện (interface) Executor Thread Pool Framwork Fork/Join Gói concurrent Biến atomic Số ngẫu nhiên đồng thời Câu hỏi và bài tập phần Concurrency - Thread Thread Swing Về JFC và Swing Biên dịch và chạy chương trình Swing Học Swing với NetBeans IDE Thiết lập dự án CelsiusConverter Cơ bản về IDE NetBeans Tạo giao diện CelsiusConverter Điều chỉnh giao diện CelsiusConverter Thêm logic cho ứng dụng Cách dùng bộ chứa mức top Lớp JComponent JScrollPane JSlider Giới thiệu về Timer JProgressBar Cách sử dụng Text Component JFormattedTextField Cách sử dụng ButtonGroup Cách sử dụng Color Chooser Cách tạo hộp thoại (Dialog) JEditorPane Cách sử dụng nhãn (Label) Cách sử dụng Panel Cách sử dụng Password Field Cách sử dụng Slider (JSlider) Cách sử dụng Tabbed Pane Cách sử dụng bảng (Table) Text Area Cách sử dụng Text Field (JTextField) Cách sử dụng Tool Bar Cách sử dụng Tool Tip Cách sử dụng Tree Cách sử dụng HTML trong Swing Component JTextPane Cách sử dụng đường bao (Border) Cách sử dụng Icon Demo-Calculator-V1 Kiểm tra kiến thức Swing-JDBC Cách sử dụng JList Bài hướng dẫn số 1 JDBC Database Access Giới thiệu JDBC Kiến trúc JDBC Tổng quan về cơ sở dữ liệu quan hệ Thiết lập kết nối Cách kết nối tới các RDBMS trong Java JDBC Ví dụ Commit và Rollback Kết nối Cơ sở dữ liệu Java với MySQL Demo Java Select, Insert, Update, Delete với MySQL BÀI TẬP PHẦN JDBC Code ví dụ về serverTimezone Lập trình truyền thông Tổng quan về lập trình truyền thông References InputStream isWhitespace Format String Syntax Class Paths toUri toAbsolutePath toRealPath equals startsWith endsWith Phương thức iterator() Interface Comparator<T> Interface Comparable<T> Class Files Interface Closeable Class FileSystemException Class FileSystem Enum LinkOption Class FileTime Interface BasicFileAttributes Interface PosixFileAttributes Class PosixFilePermissions Class UserPrincipalLookupService Class FileStore Interface BasicFileAttributeView Interface DosFileAttributeView Interface PosixFileAttributeView Interface FileOwnerAttributeView Interface AclFileAttributeView Interface UserDefinedFileAttributeView Interface DosFileAttributes Cách dùng NetBeans IDE Class Scanner Đóng và mở Form trong Java Swing Lấy kích thước của Form hiện thời Sửa chiều rộng của phần tử con bằng chiều rộng phần tử cha i18n Examples Ví dụ lớp Copy Ví dụ lớp Chmod Ví dụ lớp Xdd Ví dụ lớp DiskUsage Ví dụ HelloWorldSwing Ví dụ lớp TopLevelDemo BoxAlignmentDemo BorderDemo BoxLayoutDemo IconDemoApp FormattedTextFieldDemo ButtonDemo ButtonHtmlDemo TextAreaDemo TextDemo TextSamplerDemo HtmlDemo BasicDnD FocusConceptsDemo TabbedPaneDemo TableRenderDemo TableToolTipsDemo ActionDemo PasswordDemo TextFieldDemo DialogDemo TextInputDemo TreeDemo TreeIconDemo TreeIconDemo2 ComboBoxDemo ComboBoxDemo2 DynamicTreeDemo GenealogyExample TreeExpandEventDemo TreeExpandEventDemo2 CheckBoxDemo ListDialog LabelDemo SplitPaneDemo SliderDemo2 TableDialogEditDemo TextComponentDemo ColorChooserDemo ToolBarDemo ToolBarDemo2 ScrollDemo ScrollDemo2 TableDemo ButtonTabComponent TabComponentDemo TabbedPaneDemo Converter ListDemo TableSelectionDemo SimpleTableDemo SimpleTableSelectionDemo TableFTFEditDemo TableSortDemo TableFilterDemo TablePrintDemo ListSelectionDemo SharedModelDemo IntegerEditor TableSorter ColorRenderer TableSorterDemo ColorEditor CustomDialog Framework ListOfNumbers ListOfNumbers2 SliderDemo ColorChooserDemo2 RadioButtonDemo SpinnerDemo SpinnerDemo2 SpinnerDemo3 SpinnerDemo4 ListDataEventDemo CustomComboBoxDemo Đồng hồ số với thread Hiển thị ảnh trên JPanel Practicals Bài tập phần Swing - Practical 1 - Form Bài tập phần Swing - Practical 2 - Event Bài tập phần Swing - Practical 3 - JSlider - JProgressBar Bài tập phần Swing - Practical 4 - Data JDBC Bài tập phần Swing - Practical 5 - Game xếp số Test Java1 Solutions Solution phần Java IO Solution tham khảo Bài tập phần Class Solution Practical 1 Solution phần Exception Hệ thống quản lý số điện thoại Hệ thống quản lý tin tức (news) Solution câu hỏi và bài tập phần Generics Solution câu hỏi và bài tập Collections Solution Concurrency-Thread Solutions I18N Solution bài tập phần vòng lặp JavaFX Tổng quan JavaFX Cài đặt JavaFX Kiến trúc của JavaFX Cấu trúc ứng dụng JavaFX và ví dụ Tạo hình dạng 2 chiều (2D) Vẽ đoạn thẳng 2D Vẽ hình chữ nhật 2D Vẽ hình chữ nhật tròn 2D Vẽ đường tròn/hình tròn 2D Vẽ hình elip 2D Vẽ hình đa giác (Polygon) 2D Vẽ đa giác mở (Polyline) 2D Vẽ đường cong hình khối (CubicCurve) 2D Vẽ đường cong bậc 2 (QuadCurve) 2D Vẽ cung (Arc) 2D Vẽ hình SVG 2D Phần tử đường dẫn LineTo 2D Phần tử đường dẫn HLineTo 2D Phần tử đường dẫn VLineTo 2D Phần tử đường dẫn QuadCurveTo 2D Phần tử đường dẫn CubicCurveTo 2D Phần tử đường dẫn ArcTo 2D Thao tác Union Thao tác Intersection Thao tác Subtraction Tạo văn bản (Text) Hiệu ứng chỉnh màu (ColorAdjust) Hiệu ứng nhập màu (ColorInput) Hiệu ứng nhập ảnh (ImageInput) Hiệu ứng trộn (Blend) Hiệu ứng nở (Bloom) Hiệu ứng phát sáng (Glow) Hiệu ứng làm mờ hộp (BoxBlur) JUnit Tổng quan về JUnit Thiết lập môi trường Framework kiểm thử JUnit Cách sử dụng cơ bản API Viết chương trình kiểm thử Sử dụng Assertion Thủ tục thực thi Thực thi các test Test suite Bỏ qua test Thời gian test Ngoại lệ (Exception) test Tham số hóa test Chạy JUnit bằng Ant Thiết lập JUnit với Eclipse Phần mở rộng JUnit với Netbeans IDE Thiết lập JUnit test trong IntelliJ Java: Sử dụng Assertion Khóa học qua video: Lập trình Python All Lập trình C# All SQL Server All Lập trình C Java PHP HTML5-CSS3-JavaScript Đăng ký Hội viên Tất cả các video dành cho hội viên

Assertion

Tất cả các assertion đều nằm trong lớp Assert.

public class Assert extends java.lang.Object

Lớp này cung cấp một tập hợp các phương thức assertion, hữu ích cho việc viết các test. Chỉ những assertion không thành công mới được ghi lại. Một số phương thức quan trọng của lớp Assert như sau:

Sr.No. Phương thức & Mô tả
1

void assertEquals(boolean expected, boolean actual)

Kiểm tra xem hai đối tượng hoặc hai giá trị nguyên thủy có bằng nhau không.

2

void assertTrue(boolean condition)

Kiểm tra xem điều kiện có đúng không.

3

void assertFalse(boolean condition)

Kiểm tra xem điều kiện có sai không.

4

void assertNotNull(Object object)

Kiểm tra xem một đối tượng có phải là not null không.

5

void assertNull(Object object)

Kiểm tra xem một đối tượng có phải là null không.

6

void assertSame(object1, object2)

Kiểm tra xem hai tham chiếu đối tượng có trỏ đến cùng một đối tượng hay không.

7

void assertNotSame(object1, object2)

Kiểm tra hai tham chiếu đối tượng có không trỏ đến cùng một đối tượng hay không.

8

void assertArrayEquals(expectedArray, resultArray)

Phương thức này sẽ kiểm tra xem hai mảng có bằng nhau hay không.

Bây giờ ta hãy sử dụng một số phương thức được đề cập ở trên trong một ví dụ. Tạo file java có tên TestAssertions.java trong C:\>JUNIT_WORKSPACE.

import org.junit.Test;importstatic org.junit.Assert.*;publicclassTestAssertions{@Testpublicvoid testAssertions(){//test dataString str1 =newString("abc");String str2 =newString("abc");String str3 =null;String str4 ="abc";String str5 ="abc";int val1 =5;int val2 =6;String[] expectedArray ={"one","two","three"};String[] resultArray ={"one","two","three"};//Check that two objects are equal assertEquals(str1, str2);//Check that a condition is true assertTrue (val1 < val2);//Check that a condition is false assertFalse(val1 > val2);//Check that an object isn't null assertNotNull(str1);//Check that an object is null assertNull(str3);//Check if two object references point to the same object assertSame(str4,str5);//Check if two object references not point to the same object assertNotSame(str1,str3);//Check whether two arrays are equal to each other. assertArrayEquals(expectedArray, resultArray);}}

Tiếp theo, tạo file java có tên TestRunner.java trong C:\>JUNIT_WORKSPACE để thực thi (các) test case.

import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;publicclassTestRunner2{publicstaticvoid main(String[] args){Result result =JUnitCore.runClasses(TestAssertions.class);for(Failure failure : result.getFailures()){System.out.println(failure.toString());}System.out.println(result.wasSuccessful());}}

Biên dịch các lớp Test case và Test Runner bằng javac:

C:\JUNIT_WORKSPACE>javac TestAssertions.java TestRunner.java

Bây giờ hãy chạy Test Runner, nó sẽ chạy test case được xác định trong lớp Test Case đã cung cấp.

C:\JUNIT_WORKSPACE>java TestRunner

Xác minh kết quả đầu ra.

true

Chú thích (Annotation)

Chú thích giống như thẻ meta mà bạn có thể thêm vào mã của mình và áp dụng chúng cho các phương thức hoặc trong lớp. Các chú thích này trong JUnit cung cấp thông tin sau về các phương thức kiểm thử:

  • phương thức nào sẽ chạy trước và sau phương thức test.
  • phương thức nào chạy trước và sau tất cả các phương thức.
  • phương thức hoặc lớp nào sẽ bị bỏ qua trong quá trình thực thi.

Bảng sau cung cấp danh sách các chú thích và ý nghĩa của chúng trong JUnit:

Sr.No. Chú thích & Mô tả
1

@Test

Chú thích này cho JUnit biết rằng phương thức public void mà nó được đính kèm có thể được chạy như một test case.

2

@Before

Một số test cần các đối tượng tương tự được tạo trước khi chúng có thể chạy. Chú thích một phương thức public void với @Before khiến phương thức đó được chạy trước mỗi phương thức Test.

3

@After

Nếu bạn phân bổ tài nguyên bên ngoài trong phương thức Before, bạn cần giải phóng chúng sau khi chạy test. Chú thích phương thức public void với @After làm cho phương thức đó được chạy sau phương thức Test.

4

@BeforeClass

Việc chú thích một phương thức public static void với @BeforeClass khiến nó được chạy một lần trước bất kỳ phương thức test nào trong lớp.

5

@AfterClass

Điều này sẽ thực hiện phương thức sau khi kết thúc tất cả các test. Điều này có thể được sử dụng để thực hiện các hoạt động dọn dẹp (clean-up).

6

@Ignore

Được sử dụng để bỏ qua test và test đó sẽ không được thực hiện.

Tạo file lớp java có tên JunitAnnotation.java trong C:\>JUNIT_WORKSPACE để kiểm tra chú thích.

import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Ignore;import org.junit.Test;publicclassJunitAnnotation{//execute before class@BeforeClasspublicstaticvoid beforeClass(){System.out.println("in before class");}//execute after class@AfterClasspublicstaticvoid afterClass(){System.out.println("in after class");}//execute before test@Beforepublicvoid before(){System.out.println("in before");}//execute after test@Afterpublicvoid after(){System.out.println("in after");}//test case@Testpublicvoid test(){System.out.println("in test");}//test case ignore and will not execute@Ignorepublicvoid ignoreTest(){System.out.println("in ignore test");}}

Tiếp theo, tạo một file java có tên TestRunner.java trong C:\>JUNIT_WORKSPACE để thực thi các chú thích.

import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;publicclassTestRunner{publicstaticvoid main(String[] args){Result result =JUnitCore.runClasses(JunitAnnotation.class);for(Failure failure : result.getFailures()){System.out.println(failure.toString());}System.out.println(result.wasSuccessful());}}

Biên dịch các lớp Test case và Test Runner bằng javac:

C:\JUNIT_WORKSPACE>javac JunitAnnotation.java TestRunner.java

Bây giờ hãy chạy Test Runner, nó sẽ chạy test case được xác định trong lớp Test Case đã cung cấp.

C:\JUNIT_WORKSPACE>java TestRunner

Xác minh kết quả đầu ra.

in before class in before in test in after in after class true » Tiếp: Thủ tục thực thi « Trước: Viết chương trình kiểm thử Khóa học qua video: Lập trình Python All Lập trình C# All SQL Server All Lập trình C Java PHP HTML5-CSS3-JavaScript Đăng ký Hội viên Tất cả các video dành cho hội viên Khóa học qua video: Lập trình Python All Lập trình C# All SQL Server All Lập trình C Java PHP HTML5-CSS3-JavaScript Đăng ký Hội viên Tất cả các video dành cho hội viên Copied !!! Copy linkCopied link!
Bạn muốn tìm kiếm điều gì?

Từ khóa » Cách Sử Dụng Assert