Shadowهای Customize شده Robolectric یک محصول و کار در حال پیشرفت است و طراحان آن اعتقاد دارند، به همه کسانی که تمایل به مشارکت در مجموعه طراحان Robolectric و رفع باگها و شکافهای موجود در این ابزار دارند، خوش آمد گفته و آنها را برای این همکاری تشویق مینماید. با این حال، اگر افرادی میخواهند رفتار Shadow را به گونهای …
ادامه نوشته »بایگانی برچسب: Android
آموزش Robolectric-قسمت چهاردهم: Shadowها(بخش اول)
Robolectric با ایجاد یک محیط Runtime که شامل کد واقعی Android Framework است، کار میکند. این بدین معنیست که وقتی تستهای شما یا کد تحت تست در Android Framework فراخوانی میشود، یک تجربه واقعگرایانه بدست میآورید، چرا که در اکثر موارد همان کد اجرا میشود؛ همانطور که در یک دستگاه واقعی چنین اتفاقی میافتد. با این وجود محدودیتهایی هم وجود دارد: …
ادامه نوشته »آموزش Robolectric-قسمت سیزدهم: راهنمای مشارکت کننده
آغاز Dependency(وابستگیها): Android SDK با ابزارها، افزونهها و APIهای Google برای آخرین سطح API نصب شدهاند. متغیرهای محیط Android را تنظیم کنید: این Repo را کلون(Clone) کرده و Fork کنید: یک Feature Branch(شاخه امکان) برای ایجاد تغییرات خود ایجاد نمایید: تمام Android Dependencyهای مورد نیاز را به Local Maven Repository خود کپی نمایید: یک Full Build(بیلد کامل) از تمام Shadowها انجام …
ادامه نوشته »پچ گوگل کروم v70 بالاخره پس از ۳ سال نقص اندروید را رفع کرد
بر اساس گزارش ZDNet، گوگل یک بهروزرسانی برای اصلاح یک نقص امنیتی در گوگل کروم برای آندروید منتشر کرده است که به مدت سه سال کلا رها شده بود. این نقص در سال ۲۰۱۵ توسط شکارچیان باگ(Bug Hunter) در Nightwatch Cybersecurity شناسایی شد، اما تا زمانی که تیم امنیت Google متوجه شد که اطلاعات کروم در معرض افشا بوده است، …
ادامه نوشته »آموزش Robolectric-قسمت دوازدهم: سفارشیسازی Test Runner
شرایط مختلفی وجود دارد که شما تمایل دارید تا Robolectric Test Runner را سفارشیسازی(Customize) نمایید تا بدین ترتیب قبل از اینکه همه تستها و یا حتی قبل از اینکه هر Test Method اجرا شود، برخی عملیاتها را انجام دهید. یک مثال خوب برای این موضوع مقداردهی اولیه(Initialize) برای Dependency Injection Framework با مجموعهای از Dependencyهای مختلف برای تست شماست. خوشبختانه Robolectric …
ادامه نوشته »آموزش Robolectric-قسمت یازدهم: یکپارچهسازی Build System
با آغاز به کار Robolectric 3.3، این Test Runner روی Classpath به دنبال فایلی با نام ‘com/android/tools/test_config.properties/’ خواهد گشت. اگر فایل مربوطه را پیدا کرد، برای آمادهسازی Manifest، Resource، و Asset Locationهای تست استفاده میشود؛ و البته این بدون نیاز به تعیین در تستهای شما به یکی از دو شکل زیر است: ‘@Config(constants=BuildConfig.class)’ ‘@Config(manifest=”…”, res=”…”, assets=”…”)’ این به پیادهسازان Build …
ادامه نوشته »آموزش Robolectric-قسمت دهم: Best Practiceها
۱- روی کلاسهای Android که توسط دیگر کدهای Android عمل میکنند(مانند ‘Context’، ‘SharedPreferences’ و غیره) Mock یا Spy نکنید. Stub کردن(Stubbing ) بسیار شکننده است و میتواند منجر به شکست در ارتقاء Robolectric یا پلتفرم Android شود. استثنائات کوچک این قانون، کلاسهایی با پاسخگویی بسیار محدود مانند Event Listenerها هستند. ۲- Layout Inflation را در تست Robolectric خود تست نموده …
ادامه نوشته »آموزش Appium برای تست اپلیکیشنهای موبایل Android و iOS-قسمت هفتم و آخر: ۱۸ پرسش و پاسخ مهم درباره Appium(بخش دوم)
۱۰- نیازمندی اصلی برای نوشتن تست Appium چیست؟ برای نوشتن تست Appium شما به موارد ذیل نیاز دارید: Driver Client: ابزار Appium مانند یک کاربر میتواند موبایل اپلیکیشنها را اجرا کرده و آنها را راهاندازی(Drive) کند. شما با استفاده از یک Client Library، تستهای Appium خود را مینویسید، که مراحل تست شما را بستهبندی نموده و آنها را به Appium …
ادامه نوشته »آموزش Robolectric-قسمت نهم: استفاده از Add-on Moduleها
به منظور کاهش تعداد وابستگیهای خارجی روی اپلیکیشن در حال تست، shadows در Robolectric به Add-on Packageهای مختلف تقسیم میشود. shadows فقط برای کلاسهای فراهم شده در base Android SDK بوسیله Main Robolectric Module ارائه شده است. shadows تکمیلی برای چیزهایی مانند appcompat یا Support Library توسط Add-on Moduleها ارائه شده است. جدول زیر Add-on Shadow Packageهای موجود را لیست میکند: …
ادامه نوشته »آموزش Robolectric-قسمت هشتم: Drive کردن چرخه حیات Activity
قبل از Robolectric 2.2، اکثر تستها، Activityها را مستقیما با فراخوانی Constructorها، (()new MyActivity) و سپس فراخوانی دستی متدهای Lifecycle از قبیل ‘()onCreate'” ایجاد میکردند. همچنین به طور گستردهای از مجموعهای از متدها در ‘ShadowActivity’ (به عنوان مثال ‘()ShadowActivity.callOnCreate’) استفاده میشد، که برای ‘ActivityController’ به نوعی Precursor بودند. ‘ActivityController’ یک Robolectric API است که تمام این موضوعات را تغییر میدهد. هدف آن …
ادامه نوشته »