কেবলমাত্র আসল যুক্তিই বাহ্যিক এপিআইয়ের ক্যোয়ারী বাক্য গঠনতে রয়েছে। এটি এপিআইকে জিজ্ঞাসা করে কিনা তা পরীক্ষা করতে চাই না, আমি এটি পরীক্ষা করতে চাই যে এটি এটিকে এমনভাবে জিজ্ঞাসা করে যাতে সঠিক তথ্য ফিরে আসবে। উদাহরণস্বরূপ, কিছু সিডো-কোড:
function retrieve_related_data(id)
{
query = "[potentially long, syntactically complex query that
uses param id to get some data]";
results = api_wrapper.query(query);
return results;
}
একটি মেক আপ এপিআই সহ আরও কংক্রিটের উদাহরণ:
function retrieveLifeSupportingObjectsWithinRegion(id)
{
query = "
within region(" + id + ") as r
find objects matching hydration>0 and temp_range has 75
send name, id, relative(position, r)
";
results = astronomicalObjectApiWrapper.query(query);
return results;
}
ক্যোরিটি এপিআই-এর একটি বাক্য গঠন রীতিতে জটিল এবং জটিল এবং একই বা অনুরূপ ফলাফল অর্জনের একাধিক উপায় রয়েছে। ফাংশনটির উদ্দেশ্যটি ডেটা দ্বারা সনাক্ত করা id
নয় বরং এটি দ্বারা চিহ্নিত ডেটার সাথে অস্পষ্ট সম্পর্কের ভিত্তিতে অন্যান্য ডেটার একটি উপসেট সন্ধান করা অন্যান্য id
কয়েকটি প্রয়োজনীয়তাও পূরণ করে। অন্যান্য প্রয়োজনীয়তা নির্বিশেষে সর্বদা একই রকম id
তবে সময়ের সাথে সাথে সিস্টেমটি পরিবর্তিত হতে পারে। উদাহরণস্বরূপ, উদাহরণ হিসাবে যদি এপিআই মাধ্যাকর্ষণ তথ্যের জন্য সমর্থন যোগ করে, তবে ফলাফলগুলি পরিমার্জন করতে আমরা মাধ্যাকর্ষণটি ব্যবহার করার জন্যও কোয়েরিটি পরিবর্তন করতে পারি। অথবা আমরা টেম্প রেঞ্জটি যাচাই করার জন্য আরও কার্যকর উপায় নিয়ে এসেছি, তবে এটি ফলাফল পরিবর্তন করে না।
আমি যা পরীক্ষা করতে চাই তা হ'ল কোনও প্রদত্ত ইনপুটের id
জন্য ডেটার সঠিক সেটটি ফিরে আসে। আমি এটি পরীক্ষা করতে চাই যাতে কেউ যদি ক্যোয়ারীটি এমনভাবে ভুল করে দেয় id
যে এটি ব্যর্থ হবে তার ভিত্তিতে সঠিক তথ্যটি আর ফিরিয়ে দিচ্ছে না, তবে আমিও চাই যে লোকেরাও অনুসন্ধানটি পরিবর্তন করার প্রয়োজন ছাড়াই এটিকে পরিমার্জন করতে ক্যোয়ারীটি পরিবর্তন করতে সক্ষম হবে পরীক্ষা.
বিকল্পগুলি যা আমি বিবেচনা করেছি:
আমি এপিআই আটকে দিতে পারি, তবে তা হয় খুব সহজ হবে (এটি পরীক্ষা করে দেখুন)
id
উপস্থিত রয়েছে তা এবং তারপরে যদি একটি অপ্রত্যাশিত সেট হয় তবে প্রত্যাশিত সেটটি ফেরত দিন) খুব ভঙ্গুর (ক্যোরির স্ট্রিংটি পরীক্ষা করে দেখুন ফাংশনে ঠিক কী রয়েছে), বা খুব জটিল (ব্যবহার করা ক্যোয়ারীটি সিনট্যাক্টিক্যালি সঠিক এবং পরীক্ষা করে সঠিক ডেটা ফেরত আসবে)।আমি আসল এপিআই-তে কোয়েরিটি জমা দিতে পারলাম, তবে পরীক্ষার সিস্টেমের নিয়ন্ত্রণের বাইরে বাইরের সিস্টেমের ডেটা পরিবর্তনের সাথে সাথে প্রত্যাশিত ফলাফলগুলি সময়ের সাথে সাথে পরিবর্তন করতে পারে।
এটিতে থাকা ডেটাটি নিয়ন্ত্রণ করতে আমি আসল এপিআইয়ের একটি পরীক্ষা ইনস্টল করতে গিয়ে দেখতে পেলাম, তবে এটি অনেক প্রচেষ্টা।
আমি # 2 এর দিকে ঝুঁকছি এবং এটি আরও একটি ইন্টিগ্রেশন টেস্ট তৈরি করছি যা প্রায়শই চালিত হয় না এবং বাহ্যিক সিস্টেমের ডেটারে কতবার পরিবর্তন হয় তা পরীক্ষাটি ভেঙে দেয় seeing আমি মনে করি এটি আপাতত সহজ হবে, তবে আমি ভাবছি যে এই বিকল্পটি সমাধান করার জন্য আমি এর বিকল্প বা আরও ভাল উপায় নিয়ে ভাবছি না এমন বিকল্প রয়েছে কি না। কোন পরামর্শ প্রশংসা হবে।