تست رابط های نقشه برداری Mybatis Boot Mybatis یک گام مهم در اطمینان از قابلیت اطمینان و عملکرد برنامه شما است. من به عنوان یک تأمین کننده تستر بهار ، من اهمیت آزمایش کامل و چالش هایی را که توسعه دهندگان هنگام آزمایش رابط های Mybatis Mapper با آن روبرو می شوند ، می فهمم. در این پست وبلاگ ، من بهترین روش ها و تکنیک های مربوط به نحوه آزمایش موثر رابط های MAPPER BOOT Mybatis بهار را با استفاده از تستر بهار به اشتراک می گذارم.
درک رابط های Mybatis Mapper
Mybatis یک چارچوب پایداری محبوب است که دسترسی به پایگاه داده در برنامه های جاوا را ساده می کند. رابط های Mybatis Mapper رابط های جاوا هستند که روش های SQL را برای عملیات پایگاه داده تعریف می کنند. این رابط ها برای تعامل با پایگاه داده بدون نیاز به نوشتن کد BoilerPlate برای عملیات JDBC استفاده می شوند.
هنگام آزمایش رابط های Mybatis Mapper ، باید اطمینان حاصل کنیم که نمایش داده های SQL تعریف شده در این رابط ها صحیح است و نتایج مورد انتظار را برمی گرداند. تستر بهار یک روش مناسب برای آزمایش این رابط ها در یک زمینه برنامه کاربردی بوت بهار فراهم می کند.
تنظیم محیط آزمایش
قبل از شروع آزمایش ، باید محیط آزمایش را تنظیم کنیم. ابتدا اطمینان حاصل کنید که وابستگی های زیر را در خود داریدpom.xmlاگر از Maven استفاده می کنید:
<GroupId> org.springframework.boot </madeid> <ratifactid> بهار-بوت-استار-تست </artifactid> تست </scope> </eppencetion> <Pendepency> <GressId> org.mybatis.spring.boot-strest </groupsid> mybatid> mybatid> mybatid> myBatid> myBatid> myBatid> mybatid> mybatid> mybatid> mybatid> mybatid> mybatid> mybatid> mybatid> mybatid> <Cope> تست </scope> </eppendency>
این وابستگی ها برنامه های آزمایشی لازم را برای Boot Spring و Mybatis فراهم می کند.
نوشتن یک تست ساده برای رابط Mybatis Mapper
بیایید فرض کنیم ما یک رابط کاربری ساده Mybatis به نام داریممرواریداین روشی برای یافتن کاربر توسط شناسه دارد:
وارد کردن org.apache.ibatis.annotations.mapper ؛ وارد کردن org.apache.ibatis.annotations.Select ؛ رابط عمومی mapper usermapper {select ("انتخاب * از کاربران که در آن شناسه = #{id}") کاربر finduserbyid (شناسه int) ؛ }
برای آزمایش این رابط نقشه برداری ، می توانیم با استفاده از تستر بهار ، یک کلاس تست بنویسیم. در اینجا یک مثال آورده شده است:
واردات org.junit.jupiter.api.test ؛ وارد کردن org.springframework.beans.factory.annotation.autowired ؛ وارد کردن org.springframework.boot.test.context.springbootest ؛ واردات org.junit.jupiter.api.assertions.assertnotnull ؛ springbootest کلاس عمومی usermappertest {autowired usermapper usermapper ؛ test public void testfinduserbyid () {کاربر کاربر = usermapper.finduserbyid (1) ؛ assertnotnull (کاربر) ؛ }}
در این کلاس آزمون ، ما ازspringboottestحاشیه نویسی برای بارگیری زمینه برنامه Boot Boot. سپس ما را خودکار می کنیممرواریدرابط و نوشتن یک روش تست برای تماس باfindurbyروش ما از Junit 5 استفاده می کنیمعبادتادعا برای اطمینان از اینکه کاربر برگشتی تهی نیست.
آزمایش با یک پایگاه داده تست
در یک سناریوی واقعی جهانی ، ما نمی خواهیم از پایگاه داده تولید برای آزمایش استفاده کنیم. ما می توانیم از یک بانک اطلاعاتی حافظه مانند H2 برای آزمایش استفاده کنیم. وابستگی زیر را به خود اضافه کنیدpom.xml:
<Enfelfency> <CressId> com.h2database </bartIfactId> H2 </artifactid> <Scope> تست </scope> </eppendency>
سپس ، پایگاه داده تست را در خود پیکربندی کنیدApplication-test.Propertiesپرونده:
Spring.datasource.url = JDBC: H2: MEM: testdb Spring.datasource.driverclassname = org.h2.driver Spring.Datasource.Username = SA Spring.datasource.password = رمز عبور Spring.jpa.Database-platform = org.ibernate.h2dialect.h2dialect.h2dialect.h2dialect.h2dialect.h2dialect.h2
اکنون ، هنگامی که تست ها را اجرا می کنید ، Spring Boot به جای پایگاه داده تولید از پایگاه داده حافظه H2 در - حافظه استفاده می کند.
آزمایش نمایش داده ها و معاملات پیچیده
بعضی اوقات ، رابط های Mybatis Mapper ممکن است دارای نمایش داده ها یا معاملات پیچیده باشند. به عنوان مثال ، یک رابط نقشه برداری ممکن است روشی برای وارد کردن کاربر داشته و سپس یک رکورد مرتبط دیگر را در همان معامله به روز کند.
بیایید فرض کنیم کهمرواریدبا روشی برای وارد کردن کاربر:


وارد کردن org.apache.ibatis.annotations.insert ؛ واردات org.apache.ibatis.annotations.options ؛ Mapper Public Interface userMapper {insert ("مقادیر وارد کاربران (نام ، ایمیل) ( #{name} ، #{ایمیل})") options (usereneratedKeys = true ، keyProperty = "id") int insertuser (کاربر کاربر) ؛ }
برای آزمایش این روش ، می توانیم یک تست را به شرح زیر بنویسیم:
واردات org.junit.jupiter.api.test ؛ وارد کردن org.springframework.beans.factory.annotation.autowired ؛ وارد کردن org.springframework.boot.test.context.springbootest ؛ وارد کردن org.springframework.transaction.annotation.transactional ؛ وارد کردن org.junit.jupiter.api.assertions.asserttrue ؛ springboottest transactional کلاس عمومی userMapperInserTtest {autoWired usermapper usermapper ؛ test public void testinsertuser () {کاربر کاربر = کاربر جدید () ؛ user.setName ("جان دوی") ؛ user.setEmail ("johndoe@example.com") ؛ نتیجه int = usermapper.insertuser (کاربر) ؛ AssertTrue (نتیجه> 0) ؛ }}
درtransactionalحاشیه نویسی تضمین می کند که آزمون در یک معامله انجام می شود و تغییرات انجام شده در طول آزمون پس از اتمام آزمون دوباره انجام می شود.
استفاده از تمسخر برای وابستگی های خارجی
در بعضی موارد ، رابط Mybatis Mapper ممکن است به خدمات خارجی یا مؤلفه ها بستگی داشته باشد. به عنوان مثال ، یک روش نقشه برداری ممکن است قبل از انجام یک عملیات پایگاه داده ، یک API خارجی را برای اعتبار برخی از داده ها فراخوانی کند. در چنین مواردی ، ما می توانیم از تمسخر برای جداسازی رابط Mapper از این وابستگی های خارجی استفاده کنیم.
ما می توانیم از Mockito استفاده کنیم که یک چارچوب مسخره محبوب در اکوسیستم جاوا است. وابستگی زیر را به خود اضافه کنیدpom.xml:
<Endepency> <CressId> org.mockito </bartIfactId> Mockito-Core </artifactid> <cope> تست </scope> </ponfendent>
در اینجا نمونه ای از نحوه استفاده از Mockito برای مسخره کردن یک سرویس خارجی در یک تست نقشه برداری آورده شده است:
واردات org.junit.jupiter.api.test ؛ واردات org.mockito.mockito ؛ وارد کردن org.springframework.beans.factory.annotation.autowired ؛ وارد کردن org.springframework.boot.test.context.springbootest ؛ وارد کردن org.springframework.boot.test.mock.mockito.mockbean ؛ وارد کردن org.junit.jupiter.api.assertions.assertequals ؛ springbootest کلاس عمومی usermapperwithmocktest {autowired usermapper usermapper خصوصی ؛ mockbean خصوصی خارجی خدمات خارجی ؛ test public void testmapperWithmock () {mockito.when (externalService.validatedata (mockito.any ())). سپس return (درست) ؛ کاربر کاربر = usermapper.finduserbyid (1) ؛ assertequals ("نام مورد انتظار" ، user.getName ()) ؛ }}
محصولات مرتبط
ما به عنوان یک تأمین کننده تستر بهار ، ما همچنین طیف وسیعی از تجهیزات آزمایشگاهی با کیفیت بالا را ارائه می دهیم. شما ممکن است به ما علاقه مند باشیدپمپ خلاء آب عمودیبادستگاه آسیاب کلوئیدی آزمایشگاهوتراکتور شیشه ای 20Lبشر این محصولات برای پاسخگویی به نیازهای مختلف تحقیقات علمی و کاربردهای صنعتی طراحی شده اند.
پایان
تست رابط های نقشه برداری Mybatis Boot Mybatis برای اطمینان از کیفیت و قابلیت اطمینان برنامه شما ضروری است. با استفاده از تستر بهار ، می توانیم به راحتی در زمینه برنامه کاربردی بوت بهار تست هایی را برای این رابط ها بنویسیم. ما می توانیم از پایگاه داده های حافظه برای آزمایش ، انجام معاملات و استفاده از مسخره برای جداسازی وابستگی های خارجی استفاده کنیم.
اگر به محصولات تستر بهار ما یا هر یک از تجهیزات آزمایشگاهی مرتبط علاقه دارید ، برای تهیه و مذاکره بیشتر با ما تماس بگیرید. ما متعهد هستیم که بهترین راه حل ها را برای نیازهای آزمایش و تحقیق خود در اختیار شما قرار دهیم.
منابع
- مستندات بوت بهار
- مستندات mybatis
- مستندات Junit 5
- مستندات مسخره



