Rumah Java javaTutorial 新Java运动:测试驱动开发3---用户注册2

新Java运动:测试驱动开发3---用户注册2

Dec 30, 2016 pm 01:13 PM

测试驱动开发(TDD)其实不是一个新概念,但是这种方法论的实质经常被误解。以我为例,我觉得测试驱动开发就是写单元测试,对代码进行充分测试。其实这是一种对测试驱动开发的一种最常见的误解,测试驱动开发不仅仅是强调测试,其同时更强调驱动开发。编写测试用例的的目的不仅仅是进行测试,而且是一种设计,是对功能及接口的设计,而且是以功能或接口使用者的角度来进行设计,而其他方法学中的设计,则是在开发人员角度上的设计,因此测试驱动开发更有利于产生好的设计。

但是仅仅通过测试进行设计,运行测试来保证代码质量,还不足以产生高质量的软件产品。测试驱动开发同时还强调重构,就是对代码不合理的地方进行重构,而且这个重构在每次编写测试、开发、验证进程中都需要进行,由于有测试用例进行保证,我们可以放心大胆的进行重构,而不用担心会导致意想不到的后果出现。

回到我们的项目中,在MainServlet中,我们实现了全部的业务逻辑,但是我们很快就会意识到,如果所有应用逻辑都写到这个类中,那个这个类将变成一个巨无霸,最终会变得不可维护,因此我们需要将用户注册业务逻辑实现放到用户模块中去。大家可以看到,我们已经开始重构我们的系统了。

首先,我们建立user包,在该包下面建立UserMngr类,因为我们预估,用户模块除了维护用户基本信息外,还需要维护用户群组、用户级别、用户积分等信息,如果让调用者完全了解这些细节信息是没有必要的,因此我们在这里用了Facade模式,所有对用户的操作均通过UserMngr来进行。代码如下所示:

public class UserMngr {  
    public static long registerUser(Map<String, Object> userInfo) {  
        return 101;  
    }  
}
Salin selepas log masuk

我们看到,在这个类里,我们仅返回一个值,什么也没做,为的是快速验证我们的重构架构是可以工作的,具体功能可以在以后添加。另外,需要注意的是参数项,这里用的是Map对象,即以类似PHP中的数组来传递参数。在Java中更常见的作为是为此目的设计一个值对象类,但是这经常造成定义许多值对象类,或者由于共用的需要,一个值对象非常庞大,这里采用Map来传递参数省去了这样的麻烦。

下面在MainServlet中加入对用户模块调用的代码:

private void registerUser(HttpServletRequest request, HttpServletResponse response) 
			throws IOException, ServletException {
		String userName = null;
		if (request.getParameter("userName") != null) {
			userName = request.getParameter("userName");
		}
		Map<String, Object> userInfo = new HashMap<String, Object>();
		userInfo.put("userName", userName);
		long userId = UserMngr.registerUser(userInfo);
		Map<String, Object> model = new HashMap<String, Object>();
		model.put("userId", "" + userId);
		request.setAttribute("model", model);
		/*this.getServletContext().getRequestDispatcher("/caporder/apply_capital.jsp")
			.forward(request, response);*/
	}
Salin selepas log masuk

下面运行测试用例,应该可以通过,这证明我这次对架构的重构是成功的。

 以上就是新Java运动:测试驱动开发3---用户注册2的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pintu masuk laman web rasmi DeepSeek dan aktiviti promosi terkini Pintu masuk laman web rasmi DeepSeek dan aktiviti promosi terkini Feb 19, 2025 pm 05:15 PM

Laman web rasmi DeepSeek kini melancarkan pelbagai aktiviti diskaun untuk menyediakan pengguna dengan pengalaman membeli -belah. Pengguna baru mendaftar untuk mendapatkan kupon $ 10, dan nikmati diskaun masa terhad 15% untuk keseluruhan penonton. Mengesyorkan rakan juga boleh mendapat ganjaran, dan anda boleh mengumpul mata untuk penebusan hadiah semasa membeli -belah. Tarikh akhir acara berbeza.

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Platform Perdagangan Laman Web Open Open Door WETER Pintu Pintu Terbuka Pintu Pertukaran Laman Web Platform Perdagangan Laman Web Open Open Door WETER Pintu Pintu Terbuka Pintu Pertukaran Laman Web Feb 28, 2025 am 10:57 AM

Gate.io Sesame Open adalah platform perdagangan aset digital yang terkemuka di dunia, termasuk perdagangan mata wang fiat, perdagangan mata wang, perdagangan leveraged, kontrak kekal, token ETF yang memanfaatkan, pengurusan kekayaan, penawaran awam permulaan permulaan dan bahagian lain, yang menyediakan pengguna dengan keselamatan, kestabilan, keterbukaan dan ketelusan.

Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot memudahkan penciptaan aplikasi Java yang mantap, berskala, dan siap pengeluaran, merevolusi pembangunan Java. Pendekatan "Konvensyen Lebih Konfigurasi", yang wujud pada ekosistem musim bunga, meminimumkan persediaan manual, Allo

Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Oct 11, 2024 pm 06:30 PM

Java Made Simple: Panduan Permulaan untuk Kuasa Pengaturcaraan Pengenalan Java ialah bahasa pengaturcaraan berkuasa yang digunakan dalam segala-galanya daripada aplikasi mudah alih hingga sistem peringkat perusahaan. Untuk pemula, sintaks Java adalah ringkas dan mudah difahami, menjadikannya pilihan ideal untuk pembelajaran pengaturcaraan. Sintaks Asas Java menggunakan paradigma pengaturcaraan berorientasikan objek berasaskan kelas. Kelas ialah templat yang menyusun data dan tingkah laku yang berkaitan bersama-sama. Berikut ialah contoh kelas Java yang mudah: publicclassPerson{privateStringname;privateintage;

Gate.io Exchange Newbie Pendaftaran dan Tutorial Dagangan Gate.io Exchange Newbie Pendaftaran dan Tutorial Dagangan Feb 21, 2025 pm 09:54 PM

Gate.io Exchange adalah salah satu platform perdagangan cryptocurrency terkemuka di dunia. Panduan ini menyediakan tutorial langkah demi langkah untuk membantu pengguna mendaftar dan berdagang dengan Gate.io. Proses pendaftaran termasuk memilih kaedah pendaftaran (telefon, e -mel atau akaun sosial), mengisi maklumat, menetapkan kata laluan masuk, dan menyelesaikan pengesahan identiti. Tutorial perdagangan termasuk mengakses halaman dagangan, memilih pasangan dagangan, memasukkan maklumat perdagangan, meletakkan pesanan, dan melihat status pesanan. Dengan bimbingan artikel ini, pengguna dengan mudah boleh memulakan perdagangan cryptocurrency di Gate.io.

See all articles