Berbagi teknologi

Pengenalan spesifikasi proyek/kode dan Apifox

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Daftar isi

Daftar isi

1. Spesifikasi proyek:

(1) Struktur proyek:

(2) Objek data yang dikirimkan

2. Spesifikasi kode:

(1) Konvensi penamaan basis data:

(2) Spesifikasi anotasi:

(3) Spesifikasi penamaan:

(4) Spesifikasi front-end dan back-end:

(5) Spesifikasi lainnya:

3. Penggunaan Apifox:

(1) Pengunduhan dan pemasangan:

(2) Buat proyek baru dan undang rekan satu tim Anda:

(3) Spesifikasi penulisan untuk dokumen antarmuka

4. Fungsi debug (harus mengetahui backend)

5. Kategori tes

6. Catatan:

(Satu orang tidak dapat mendominasi negara!!!)


1. Spesifikasi proyek:

(1) Struktur proyek:

Yang spesifik adalah:

(1) Lapisan entitas: Lapisan entitas menyimpan entitas objek tertentu, yang sesuai dengan objek dalam database.

(2) Lapisan DAO: (dapat dibagi lagi menjadi dua lapisan (lapisan antarmuka dao dan lapisan implementasi dao)) adalah lapisan yang berinteraksi dengan database, yang melibatkan beberapa operasi penambahan, penghapusan, modifikasi, dan kueri database.

(3) Lapisan layanan (dapat dibagi lagi menjadi dua lapisan (lapisan antarmuka layanan dan lapisan implementasi layanan)): terutama bertanggung jawab atas desain aplikasi logis modul bisnis.

(4) Lapisan pengontrol: Lapisan Pengontrol bertanggung jawab untuk mengendalikan proses modul bisnis tertentu. Lapisan pengontrol bertanggung jawab atas interaksi front-end dan back-end, menerima permintaan front-end, memanggil lapisan layanan, menerima data yang dikembalikan oleh lapisan layanan, dan akhirnya mengembalikan halaman dan data tertentu ke klien.

(5) Lapisan utilitas: Lapisan alat menempatkan kelas alat yang umum digunakan. Misalnya, beberapa metode umum dapat ditulis sebagai fungsi util, dan kemudian keseluruhan kode dapat disederhanakan.

(6) Lapisan pengecualian: Anda dapat menulis lapisan pengecualian pengembalian terpadu.

(7) Lapisan filter: Lapisan filter, seperti memfilter otentikasi identitas secara seragam. Jika filter tidak lolos, maka hanya akan berada dalam mode tamu.

(2) Objek data yang dikirimkan

DTO adalah struktur data yang dikirim oleh permintaan front-end.

VO adalah respon yang dikembalikan oleh backend sebagai respon terhadap permintaan yang dikirim oleh frontend.

PO adalah korespondensi sebenarnya antara entitas objek dan tabel objek database.

BO adalah entitas objek dalam proses pemrosesan bisnis.

2. Spesifikasi kode:

Harap beri nama dalam bahasa Inggris, bukan Pinyin Cina.

Mudah dimengerti, tidak mewah.

Gunakan penamaan punuk daripada nama biasa.

Gunakan jeda baris secara berkala dan jangan menulis dalam paragraf yang panjang.

Bersikaplah anotasi, bukan individualistis.

Spesifikasi Pengkodean Bahasa Java - Spesifikasi Pengkodean Bahasa Java (versi Cina) - Dokumentasi Online - Materi Pemrograman JAVA Niubi Station (javanb.com)ikon-default.png?t=N7T8http://doc.javanb.com/konvensi-kode-untuk-bahasa-pemrograman-java-zh/index.html#312

Jangan gunakan kata kunci, kata khusus, dll. yang memiliki arti khusus di Java itu sendiri! ! !

(1) Konvensi penamaan basis data:

(1) Nama tabel bersifat unik, dan beberapa nama tabel tidak dapat menggunakan nama yang sama.

(2) Nama tabel harus berupa kombinasi huruf kecil dan garis bawah. Usahakan untuk menghindari penggunaan huruf besar atau karakter khusus. Artinya harus jelas. Gunakan "user_info" seperti ini, atau "tbl_user" atau "tbl_user_info".

(3) Tidak bertentangan dengan kata kunci,Untuk menonaktifkan kata-kata yang dicadangkan, seperti seperti, desc, range, match, tertunda, dll., silakan merujuk ke kata-kata resmi yang dicadangkan MySQL.

(4) Nama field database: Terdiri dari 26 huruf bahasa Inggris (peka huruf besar-kecil) ditambah garis bawah '_', seperti "user_id", "user_name", "user_password", "user_register_time", "user_login_time".

(5) Spesifikasi kunci primer dan kunci asing:

Nama indeks kunci utama adalah nama pk_field; nama indeks unik adalah nama uk_field; nama indeks biasa adalah nama idx_field.
menjelaskan: pk_ adalah kunci utama; uk_ adalah kunci unik; idx_ adalah singkatan dari indeks.

Kunci utama: pk_+nama tabel
Misalnya:pk_main
Kunci asing: fk_+nama tabel budak+_+nama tabel utama
Misalnya:fk_sub_main

(6) Jenis desimal adalah desimal, dan dilarang menggunakan float dan double.
(7) Tiga bidang yang diperlukan untuk tabel: id, create_time, update_time.

(2) Spesifikasi anotasi:

(1) Anotasi kelas:

Anotasi kelas (Kelas) terutama digunakan untuk mendeklarasikan kegunaan kelas tersebut, serta beberapa informasi seperti pembuat, versi tanggal pembuatan, nama paket, dll.:

/**
* @versi: V1.0
* @penulis: fendo
* @className: pengguna
* @packageName: pengguna
* @deskripsi: Ini adalah kelas pengguna
* @data: 01-07-2024 12:20
 **/

(2) Anotasi metode (Konstruktor):

Untuk komentar satu baris di dalam metode, mulai baris baru di atas pernyataan yang dikomentari dan gunakan //komentar. Gunakan /* */ untuk komentar multi-baris di dalam metode
Komentar harus selaras dengan kode. Semua metode abstrak (termasuk metode dalam antarmuka) harus dianotasi dengan Javadoc. Selain nilai kembalian dan deskripsi pengecualian parameter, metode tersebut juga harus menunjukkan apa yang dilakukan metode dan fungsi apa yang diimplementasikan.Anotasi metode (Konstruktor) juga dapat digunakan untuk mendeklarasikan parameter, pengembalian, dan informasi kelas lainnya:

/**
* @penulis: fendo
* @namametode: tambahkanPengguna
* @deskripsi: Tambahkan pengguna
* @param: xxxx
* @kembali: Tali
* @melempar:
*/

(3) Komentar blok kode: jelaskan tujuan bagian tertentu dari kode Anda

/**
* Buat instance pengguna
* xxxxxxxxxx
 */
Pengguna pengguna=new User();

(4) Komentar satu kalimat: komentari kode individual Anda

Pengguna pengguna=Pengguna baru(); //Membuat instance pengguna

(3) Spesifikasi penamaan:

Beri nama agar orang lain dapat memahaminya, beri nama dalam huruf besar dan kecil, dan peka terhadap huruf besar-kecil.

(1) Nama kelas menggunakan gaya UpperCamelCase:
Misalnya: UserController, FileController, BookService
(2) Nama metode, nama parameter, variabel anggota, dan variabel lokal semuanya menggunakan gaya lowerCamelCase.
Misalnya: getUserName(), userLogin(), getMessage();
(3) Penamaan tetap harus menggunakan huruf kapital semua, dan kata-kata harus dipisahkan dengan garis bawah. Usahakan untuk mengungkapkan semantik secara lengkap dan jelas, dan jangan menganggap nama tersebut terlalu panjang.
Misalnya: MAX_STOCK_COUNT / CACHE_EXPIRED_TIME
(4) Nama kelas abstrak dimulai dengan Abstrak atau Basis; nama kelas pengecualian diakhiri dengan Exception. Nama kelas pengujian dimulai dengan nama kelas yang akan diuji dan diakhiri dengan Test.
(5) Nama paket harus menggunakan huruf kecil yang seragam, dan hanya boleh ada satu kata bahasa Inggris dengan semantik alami di antara pemisah titik.Gunakan nama paket secara seragam Angka ganjil membentuk
rumusnya, namun jika nama kelas mempunyai arti jamak maka nama kelas tersebut dapat menggunakan bentuk jamak.
(6) Konvensi penamaan metode lapisan layanan/DAO:
1) Metode untuk memperoleh suatu objek diawali dengan get.
2) Metode untuk memperoleh banyak objek diawali dengan daftar dan diakhiri dengan jamak, seperti: listObjects
3) Cara memperoleh nilai statistik diawali dengan hitungan.
4) Cara penyisipan diawali dengan simpan/masukkan.
5) Cara penghapusan diawali dengan hapus/hapus.
6) Metode yang dimodifikasi diawali dengan pembaruan.
(7) Konvensi penamaan model domain:
1) Objek data: xxxDO, xxx adalah nama tabel data.
2) Objek transfer data: xxxDTO, xxx adalah nama yang berhubungan dengan bidang usaha.
3) Objek tampilan: xxxVO, xxx umumnya adalah nama halaman web.
(8) Antara semua objek kelas pengemasan bilangan bulat Perbandingan nilai , semua menggunakan metode sama dengan untuk membandingkan.
menjelaskan: Untuk Integer var = ? -128 hingga 127 Penugasan antara objek Integer dihasilkan di IntegerCache.cache dan objek yang ada akan digunakan kembali. Nilai bilangan bulat dalam rentang ini dapat langsung dinilai menggunakan ==, tetapi semua data di luar rentang ini tidak akan dihasilkan di heap
Ini adalah kesalahan besar ketika menggunakan objek yang sudah ada. Disarankan untuk menggunakan metode yang sama untuk penilaian.
(9) Untuk menilai kesetaraan antara bilangan floating point, tipe data dasar tidak dapat dibandingkan menggunakan ==, dan tipe data terbungkus tidak dapat dinilai menggunakan sama dengan. Perbandingan kesetaraan BigDecimal harus menggunakan metode bandingkanTo(), bukan metode sama dengan()
Contoh positif:
(1) Tentukan rentang kesalahan. Jika perbedaan antara dua angka floating point berada dalam rentang ini, maka keduanya dianggap sama.
mengambang A = 1,0F - 0,9F ;
mengambang B = 0,9F - 0,8F ;
mengambang perbedaan = 1e-6F ;
jika ( Matematika . perut ( A - B ) < perbedaan ) {
Sistem . keluar . cetak ( "BENAR" );
}
(2) Gunakan BigDecimal untuk menentukan nilai, lalu lakukan operasi bilangan floating point.
Desimal Besar a = baru Desimal Besar ( "1.0" );
Desimal Besar b = baru Desimal Besar ( "0.9" );
Desimal Besar c = baru Desimal Besar ( "0.8" );
Desimal Besar x = A . mengurangi ( B );
Desimal Besar y = B . mengurangi ( C );
jika ( X . dibandingkan dengan ( kamu ) == 0) {
Sistem . keluar . cetak ( "BENAR" );
}
jenis pengenalAturan penamaancontoh
Paket Awalan nama paket unik selalu berupa huruf kecil ASCII dan merupakan nama domain tingkat atas, biasanya com, edu, gov, mil, net, org, atau kode dua karakter bahasa Inggris yang mengidentifikasi negara yang ditentukan oleh tahun 1981 standar ISO 3166. Bagian selanjutnya dari nama paket berbeda-beda sesuai dengan konvensi penamaan internal organisasi yang berbeda. Konvensi penamaan tersebut dapat menggunakan komposisi nama direktori tertentu untuk membedakan departemen, proyek, mesin, atau nama login.com.sun.eng
com.apple.quicktime.v2
edu.cmu.cs.bovik.keju
Kelas Aturan penamaan: Nama kelas adalah kata benda, menggunakan huruf campuran, dengan huruf pertama setiap kata menggunakan huruf kapital. Usahakan nama kelas Anda tetap ringkas dan deskriptif. Gunakan kata-kata yang lengkap, hindari singkatan (kecuali singkatan tersebut lebih banyak digunakan, seperti URL, HTML)kelas Raster;
kelas ImageSprite;
AntarmukaAturan penamaan: Aturan kasus mirip dengan nama kelasantarmuka RasterDelegate;
antarmuka Penyimpanan;
Metode Nama metode adalah kata kerja, dalam huruf campuran, dengan huruf pertama dari kata pertama menjadi huruf kecil dan huruf pertama dari kata berikutnya menjadi huruf besar.Penamaan kasus untaberlari();
lari cepat();
dapatkanLatar Belakang();
Variabel Kecuali untuk nama variabel, semua instance, termasuk kelas dan konstanta kelas, ditulis dalam huruf campuran, dengan huruf pertama pada kata pertama adalah huruf kecil dan huruf pertama pada kata berikutnya adalah huruf besar. Nama variabel tidak boleh dimulai dengan garis bawah atau tanda dolar, meskipun hal ini diperbolehkan secara sintaksis.
Nama variabel harus pendek dan deskriptif. Nama variabel sebaiknya dipilih agar mudah diingat, yaitu untuk menunjukkan tujuannya.

Daftar<User> Daftar pengguna;

String namapengguna;

Konstanta Deklarasi konstanta kelas dan konstanta ANSI harus menggunakan huruf kapital semua, dengan kata-kata dipisahkan dengan garis bawah. (Cobalah untuk menghindari konstanta ANSI, yang dapat dengan mudah menyebabkan kesalahan)statis final int MIN_WIDTH = 4;
statis final int MAX_WIDTH = 999;
statis final int DAPATKAN_CPU_THE = 1;

(4) Spesifikasi front-end dan back-end:

(1) Metode permintaan: Definisi operasi tertentu. Metode permintaan umum adalah sebagai berikut:
a) GET: Dapatkan sumber daya dari server. (dapat dilihat sebagai operasi pemilihan)
b) POST: Buat sumber daya baru di server. (dapat dianggap sebagai operasi penyisipan)
c) PUT: Perbarui sumber daya di server. (dapat dilihat sebagai operasi pembaruan)
d) HAPUS: Menghapus sumber daya dari server. (dapat dianggap sebagai operasi penghapusan)
(2) Informasi pengembalian yang diminta:
  • code:kode status http
    • Jika ada kesalahan tambahan yang Anda tentukan sendiri, Anda juga dapat mempertimbangkan untuk menggunakan kode kesalahan Anda sendiri.
  • message: Informasi deskripsi teks yang sesuai
    • Jika terjadi kesalahan, informasi kesalahan spesifik akan ditampilkan.
    • Jika tidak, operasi berhasil, dan pemrosesan yang disederhanakan secara umum akan menghasilkan hasil OK.
  • data
    • string json yang sesuai dengan data
      • dalam kasusHimpunan, maka lapisan terluar yang sesuai adalah[]darilist
      • dalam kasusobyek, maka lapisan terluar yang sesuai adalah{}daridict
  1. {
  2. "code": 200,
  3. "message": "new user has created",
  4. "data": {
  5. "id": "user-4d51faba-97ff-4adf-b256-40d7c9c68103",
  6. "firstName": "crifan",
  7. "lastName": "Li",
  8. "password": "654321",
  9. "phone": "13511112222",
  10. "createdAt": "2016-10-24T20:39:46",
  11. "updatedAt": "2016-10-24T20:39:46"
  12. ......
  13. }
  14. }

(3) Kode status respons

Kesalahan:

  • 1xx (kode status informasi): Menunjukkan bahwa permintaan yang diterima sedang diproses.
  • 2xx (kode status sukses) : Menunjukkan bahwa permintaan telah diproses secara normal. 200 berarti permintaan berhasil dikembalikan.
  • 3xx (kode status pengalihan): Tindakan tindak lanjut diperlukan untuk menyelesaikan permintaan ini.
  • 4xx (kode status kesalahan klien) : Menunjukkan bahwa permintaan mengandung kesalahan sintaksis atau tidak dapat diselesaikan. 400, 404, 401, 403 adalah kesalahan yang disebabkan oleh front-end saat mengirim permintaan. Front-end perlu memeriksa masalahnya terlebih dahulu, atau mungkin ada kesalahan dalam penulisan back-end.
  • 5xx (kode status kesalahan server) : Terjadi kesalahan saat server memproses permintaan. Masalah backend, pengecualian mungkin terjadi, kesalahan server, dll.

2XX sukses


200 oke (permintaan berhasil)
204 tidak ada konten (permintaan berhasil, tetapi tidak ada hasil yang dikembalikan)
206 konten parsial (klien meminta sebagian sumber daya, server berhasil merespons dan mengembalikan berbagai sumber daya)


pengalihan 3XX


301 pindah secara permanen (pengalihan permanen)
302 ditemukan (pengalihan sementara)
303 lihat lainnya (menunjukkan bahwa karena ada URI lain untuk sumber daya yang sesuai dengan permintaan, GET harus digunakan
Metode diarahkan untuk mendapatkan sumber daya yang diminta)
304 tidak diubah (menunjukkan bahwa ketika klien menggunakan akses bersyarat ke sumber daya, server menemukan sumber daya tersebut, tetapi kondisi permintaan tidak memenuhi ketentuan. Ini tidak ada hubungannya dengan pengalihan)
307 pengalihan sementara (artinya sama dengan 302)


Kesalahan klien 4XX


400 permintaan buruk (ada kesalahan sintaksis dalam pesan permintaan)
401 tidak sah (memerlukan otentikasi (pengembalian pertama) atau otentikasi gagal (pengembalian kedua))
403 dilarang (permintaan ditolak oleh server)
404 tidak ditemukan (sumber daya yang diminta tidak dapat ditemukan di server)


Kesalahan server 5XX


500 kesalahan server internal (kesalahan terjadi saat server menjalankan permintaan)
Layanan 503 tidak tersedia (server kelebihan beban atau tidak aktif karena pemeliharaan dan tidak dapat menangani permintaan)

(5) Spesifikasi lainnya:

(1) Ketika permintaan HTTP mengirimkan konten melalui isi, panjangnya harus dikontrol. Setelah panjang maksimum terlampaui, kesalahan akan terjadi pada penguraian back-end.
menjelaskan: Batas default nginx adalah 1MB, dan batas default Tomcat adalah 2MB. Ketika ada kebutuhan bisnis untuk mentransfer konten yang lebih besar, Anda dapat meningkatkan batas sisi server.
(2) Jangan gunakan return di blok akhirnya
menjelaskan: Setelah pernyataan return di blok try berhasil dieksekusi, ia tidak langsung kembali, tetapi terus mengeksekusi pernyataan di blok akhirnya. Jika ada pernyataan return di sini, ia akan langsung kembali ke sini, tanpa ampun membuang titik pengembalian di blok tersebut coba blokir.
(3) Dalam skenario bisnis Setelah melempar pengecualian dan tertangkap Jika Anda perlu memutar kembali Pastikan untuk mengembalikan transaksi secara manual.
(4) Anda dapat menggunakan log untuk mencatat informasi, Gunakan kerangka logging (SLF4J、 JCL—Jakarta Commons Penebangan) API di .

3. Penggunaan Apifox:

(1) Pengunduhan dan pemasangan:

Link : Klik link untuk langsung mendownload apifox (cukup download versi terbarunya). Apifox - platform kolaborasi terintegrasi untuk dokumentasi API, debugging, mocking, dan pengujian. Ini memiliki fungsi seperti manajemen dokumen antarmuka, debugging antarmuka, Mock, dan pengujian otomatis, dan efisiensi pengembangan antarmuka, pengujian, dan debugging bersama meningkat 10 kali lipat. Alat manajemen dokumen antarmuka terbaik dan alat pengujian otomatisasi antarmuka.ikon-default.png?t=N7T8https://apifox.com/

(2) Buat proyek baru dan undang rekan satu tim Anda:

1. Buat tim Anda dan buat proyek baru:

Undang rekan satu tim Anda

2. Buat antarmuka baru dan model data baru:

(1) Tentukan apa permintaannya (POST, GET, PUT, DELETE):

(2) Lingkungan pengujian harus disatukan, dan URL di lingkungan yang berbeda berbeda:

(3) Parameter permintaan dikonfigurasi:

Parameter apa yang dikonfigurasi? Berikan contoh parameter, nama Cina, dan deskripsi parameter.

(4) Responsnya harus dikonfigurasi:

Misalnya, perlu untuk menentukan jenis informasi apa yang dikembalikan di negara bagian yang berbeda, dan harus ada contoh keberhasilan dan contoh pengecualian (untuk kenyamanan front end).

  1. {
  2. "code": 200,
  3. "message": "登入成功",
  4. "data": {
  5. "user_id": 27,
  6. "user_name": "孟霞",
  7. "user_password": "123456",
  8. "user_age": "15",
  9. "user_photo": "http://dummyimage.com/400x400",
  10. "user_last_time": "1996-12-11 09:03:49",
  11. "user_indentity": "messager",
  12. "user_birthday": "2024-02-23"
  13. }
  14. }

(5) Model data dapat dibuat:

Anda dapat membuat beberapa model data, yang sangat berguna untuk mengembalikan bidang respons dan juga memudahkan front-end untuk melihat bidang data Anda.

(3) Spesifikasi penulisan untuk dokumen antarmuka

Spesifikasi penulisan dan detail spesifik apifox.

Mulai Cepat Apifox |. Dokumentasi Bantuan Apifoxikon-default.png?t=N7T8https://apifox.com/bantuan/

(1) Harus ada pendahuluan di awal dokumen antarmuka API. Bagian ini dapat mencakup hal berikut:

  • Nama dan nomor versi antarmuka API
  • Fungsi dan tujuan antarmuka API
  • Tujuan desain dan prinsip antarmuka API
  • Cakupan yang berlaku dan batasan antarmuka API

Tujuan dari bagian ini adalah agar pembaca memahami situasi dasar dan informasi latar belakang antarmuka API.

(2) Daftar antarmuka

Selanjutnya, dalam dokumen antarmuka API, kita perlu membuat daftar semua antarmuka. Setiap antarmuka harus berisi informasi berikut:

  • Nama dan deskripsi antarmuka
  • Metode permintaan (GET, POST, PUT, DELETE, dll.)
  • Jalur permintaan (URL)
  • Parameter permintaan (termasuk parameter Kueri dan parameter Isi)
  • Contoh permintaan (contoh lengkap yang dapat menyertakan header permintaan dan isi permintaan)
  • Kode status respons dan deskripsi
  • Parameter respons (termasuk parameter Header dan parameter Body)
  • Contoh respons (contoh lengkap yang dapat menyertakan header respons dan isi respons)

Tujuan bagian ini adalah agar pembaca dapat dengan cepat memahami informasi dasar setiap antarmuka dan menggunakan antarmuka dengan benar berdasarkan contoh dalam dokumen.

(3) Deskripsi parameter permintaan dan parameter respons

Setelah daftar antarmuka, kita perlu merinci parameter permintaan dan parameter respons untuk setiap antarmuka. Bagian ini harus mencakup informasi berikut:

  • Nama parameter dan deskripsi
  • Jenis dan format parameter
  • Apakah ini wajib dan nilai default?
  • Contoh parameter

Untuk tipe dan format parameter, Anda bisa menggunakan tipe dan format data standar, atau Anda bisa menentukan tipe dan format data Anda sendiri sesuai dengan keadaan tertentu. Apakah nilai wajib dan nilai default perlu ditentukan berdasarkan situasi aktual.

(4) Deskripsi kode kesalahan

Saat menggunakan antarmuka API, terkadang terjadi kesalahan. Dalam hal ini, kode kesalahan perlu dikembalikan untuk menjelaskan jenis dan penyebab kesalahan. Oleh karena itu, dalam dokumentasi antarmuka API, kita perlu menentukan semua kemungkinan kode kesalahan. Bagian ini harus mencakup informasi berikut:

  • Kode kesalahan dan deskripsi
  • Jenis kesalahan dan penyebabnya
  • Contoh kode kesalahan yang dikembalikan oleh antarmuka

Tujuan bagian ini adalah agar pembaca memahami semua kemungkinan jenis dan penyebab kesalahan, serta mampu menangani kesalahan dengan benar berdasarkan contoh dalam dokumentasi.

4. Fungsi debug (harus mengetahui backend)

Mengajari Anda cara melakukan debug di Java dalam 2 menit [Java dalam IDEA]_Cara melakukan debug di proyek Java tanpa kasus - Blog CSDNikon-default.png?t=N7T8https://blog.csdn.net/qq_43436117/artikel/detail/113859737

5. Kategori tes

(1) Operasi khusus:

Tentukan kelas tes

saran:

Nama kelas pengujian: Nama kelas yang diuji Test KalkulatorTest
Nama paket: xx.xx.xx.test cn.itcast.test
Tentukan metode pengujian: dapat dijalankan secara mandiri

saran:

Nama metode: nama metode pengujian testAdd()
Nilai pengembalian: batal
Daftar parameter: parameter kosong
Tambahkan @Test ke metode ini

Impor lingkungan ketergantungan Junit

hasil penilaian:

Merah: gagal
hijau: sukses
Kami biasanya menggunakan metode statis menegaskanEquals(diharapkan, aktual) di bawah kelas Assert untuk menangani hasil yang diharapkan dan hasil keluaran

Assert.assertEquals(3, hasil);

Kedua parameter tersebut adalah: nilai yang diharapkan nilai hasil program

Mengapa menggunakan Assert.assertEquals(diharapkan, aktual) untuk memproses hasil pengujian?

Karena kami menetapkan bahwa merah melambangkan kegagalan dan hijau melambangkan kebenaran. Saat kami menggunakan metode pengujian untuk menguji metode penjumlahan komputer, kami hanya menampilkan hasil ini (dengan asumsi tidak ada pengecualian yang terjadi). Jika kita input 1 dan 3, kita berharap mendapatkan hasil 4, namun yang kita output adalah 2, dan yang kita harapkan adalah 4. Hasil yang didapat saat ini tidak sesuai dengan ekspektasi kita, namun hasil running masih hijau (mewakili benar), Bukankah itu benar? Saat ini, kita dapat menggunakan metode AsserEquals di akhir untuk membandingkan nilai yang diharapkan dan nilai hasil yang dikeluarkan oleh program. Jika keduanya sama, maka akan berwarna hijau, dan jika tidak sama, warnanya merah. Apakah kali ini memenuhi definisi kita tentang hijau dan merah?

  1. package cn.itcast.test;
  2. import cn.itcast.junit.Calculator;
  3. import org.junit.Assert;
  4. import org.junit.Test;
  5. public class CalculatorTest {
  6. /**
  7. * 测试add方法
  8. */
  9. @Test
  10. public void testAdd(){
  11. Calculator c = new Calculator();
  12. int a = 1, b = 2;
  13. int result = c.add(1, 2);
  14. Assert.assertEquals(3, result);
  15. }
  16. /**
  17. * 测试sub方法
  18. */
  19. @Test
  20. public void testSub(){
  21. Calculator c = new Calculator();
  22. int a = 1, b = 2;
  23. int result = c.sub(1, 2);
  24. Assert.assertEquals(-1, 2);
  25. }
  26. }

@Sebelum
Tambahkan @Before sebelum metode pengujian dan ini menjadi metode inisialisasi. Metode ini akan dijalankan secara otomatis sebelum semua metode pengujian dijalankan.

@Setelah
Tambahkan @After sebelum metode pengujian dan itu menjadi metode pelepasan sumber daya, yang akan dieksekusi secara otomatis setelah semua metode pengujian dijalankan.

Metode yang dihiasi dengan @Before akan dieksekusi sebelum metode pengujian dijalankan.

Metode yang dihiasi dengan @After akan dieksekusi setelah metode pengujian dijalankan.

Metode yang dimodifikasi dengan @Before atau @After akan dieksekusi terlepas dari apakah metode pengujian tersebut terjadi.

(2) Secara otomatis menghasilkan plug-in kelas Tes

Plugin yang direkomendasikan untuk menghasilkan pengujian unit secara otomatis untuk proyek Java - Komunitas Pengembang Tencent Cloud - Tencent Cloud (tencent.com)ikon-default.png?t=N7T8https://cloud.tencent.com/developer/artikel/1910893

6. Catatan:

(1) Saat menulis dokumen antarmuka di bagian belakang, harus ditulis dengan jelas dan jelas agar bagian depan Anda dapat memahaminya . Nama yang ditulis ulang dan respons antarmuka nilai default harus ditulis dengan baik.

(2) Selain yang diajarkan, Anda dapat mempelajari beberapa hal lain sendiri, seperti registrasi verifikasi email, login kode verifikasi, c3p0, enkripsi MD5, log log, Gaya hasil, dll.

(3) Penulisan kode juga harus terstandarisasi dan logikanya harus ketat; pengaturan (cookie, sesi); jika diperlukan penilaian kosong, penilaian kosong harus dibuat, dan jika keamanan dapat ditingkatkan, Anda dapat belajar darinya.

(4) Front-end dan back-end harus bekerja sama dengan baik. Jangan biarkan back-end hanya melakukan urusannya sendiri tanpa mengucapkan sepatah kata pun kepada front-end. Respons interaktif dari front-end dan back-end juga merupakan bagian dari penilaian, yang mencakup sebagian besar Antarmuka yang Anda tulis tidak hanya dapat dijalankan melalui apifox ? Apakah ada masalah logika, dll. Mungkin perlu diperhatikan.

(Satu orang tidak dapat mendominasi negara!!!)

(5) Selama analisis permintaan, tentukan fungsi dan antarmuka yang ingin Anda lakukan. Jika Anda telah melakukan beberapa fungsi tetapi front-end belum melakukannya, Anda dapat mendorongnya interfaces/data , jika Anda tidak menulis, maka renungkan dengan cermat dan komunikasikan lebih banyak.

Anda dapat melakukan benchmark terhadap proyek yang benar-benar berfungsi atau yang serupa, seperti situs belanja. Maka Anda harus membandingkannya dengan Taobao. Antarmuka back-end yang mungkin dimiliki situs web ini, modul fungsional yang mungkin dimilikinya, dan detail spesifiknya.

(6) Jangan mengejar lebih banyak secara membabi buta, bersikaplah logis dan masuk akal, dan belajar menyederhanakan bagian-bagian yang dapat disederhanakan. Namun jumlah dasar antarmuka dan volume kode juga harus dijamin. (Antarmuka yang awalnya kami tulis pada dasarnya lebih dari 40)