- HTTP অনুরোধ
- পাথ প্যারামিটার
- শরীরের অনুরোধ
- প্রতিক্রিয়া শরীর
- অনুমোদনের সুযোগ
- পরীক্ষা স্যুট
- পরীক্ষা ক্ষেত্রে
- প্রত্যাশা
- ফাংশনমক
- আরগ
- ফলাফল
- পাথএনকোডিং
- এক্সপ্রেশন রিপোর্ট লেভেল
- সমস্যা
- সোর্স পজিশন
- নির্দয়তা
- পরীক্ষার ফলাফল
- অবস্থা
- ফাংশনকল
- এক্সপ্রেশন পরিদর্শন করেছেন
- এক্সপ্রেশন রিপোর্ট
- মান গণনা
- এটা চেষ্টা করুন!
সিনট্যাকটিক এবং শব্দার্থিক শুদ্ধতার জন্য পরীক্ষার Source
। উপস্থিত সমস্যাগুলি, যদি থাকে, একটি বিবরণ, তীব্রতা এবং উত্স অবস্থান সহ কলারের কাছে ফেরত দেওয়া হবে৷
পরীক্ষার পদ্ধতি Source
সাথে কার্যকর করা যেতে পারে। Source
পাস করা নতুন নিয়ম ইউনিট পরীক্ষার জন্য দরকারী।
মনে রাখবেন যে REST API ব্যবহার করে চালানো পরীক্ষাগুলি উত্পাদন ডাটাবেস, স্টোরেজ বাকেট এবং সম্পর্কিত রিসোর্স ব্যবহার করে। এই ধরনের পরীক্ষা ব্যবহার চার্জ বহন করতে পারে. আমরা দৃঢ়ভাবে সুপারিশ করি যে আপনি নিয়ম পরীক্ষা করার জন্য Firebase লোকাল এমুলেটর স্যুট ব্যবহার করুন, যেহেতু আপনি অফলাইনে, অ-উৎপাদন সংস্থানগুলিতে ব্যবহার চার্জ ছাড়াই পরীক্ষা চালাতে পারেন।
নিম্নলিখিত Source
একটি উদাহরণ যা ব্যবহারকারীদের তাদের ব্যবহারকারী আইডি সহ এবং সঠিক মেটাডেটা মেলে এমন একটি বালতিতে ছবি আপলোড করার অনুমতি দেয়:
উদাহরণ
// Users are allowed to subscribe and unsubscribe to the blog.
service firebase.storage {
match /users/{userId}/images/{imageName} {
allow write: if userId == request.auth.uid
&& (imageName.matches('*.png$')
|| imageName.matches('*.jpg$'))
&& resource.mimeType.matches('^image/')
}
}
HTTP অনুরোধ
POST https://firebaserules.googleapis.com/v1/{name=projects/**}:test
URL gRPC ট্রান্সকোডিং সিনট্যাক্স ব্যবহার করে।
পাথ প্যারামিটার
পরামিতি | |
---|---|
name | প্রয়োজন। |
শরীরের অনুরোধ
অনুরোধের অংশে নিম্নলিখিত কাঠামো সহ ডেটা রয়েছে:
JSON প্রতিনিধিত্ব | |
---|---|
{ "source": { object ( |
ক্ষেত্র | |
---|---|
source | সঠিকতার জন্য |
testSuite | |
প্রতিক্রিয়া শরীর
সফল হলে, প্রতিক্রিয়া বডিতে নিম্নলিখিত কাঠামোর সাথে ডেটা থাকে:
FirebaseRulesService.TestRuleset
এর প্রতিক্রিয়া।
JSON প্রতিনিধিত্ব | |
---|---|
{ "issues": [ { object ( |
ক্ষেত্র | |
---|---|
issues[] | বিভিন্ন তীব্রতার সিনট্যাকটিক এবং সিমেন্টিক |
testResults[] | |
অনুমোদনের সুযোগ
নিম্নলিখিত OAuth সুযোগগুলির মধ্যে একটি প্রয়োজন:
-
https://www.googleapis.com/auth/cloud-platform
-
https://www.googleapis.com/auth/firebase
-
https://www.googleapis.com/auth/firebase.readonly
আরও তথ্যের জন্য, প্রমাণীকরণ ওভারভিউ দেখুন।
পরীক্ষা স্যুট
TestSuite
হল TestCase
দৃষ্টান্তগুলির একটি সংগ্রহ যা নিয়মগুলির যৌক্তিক সঠিকতা যাচাই করে৷ TestSuite
একটি projects.test
আমন্ত্রণের মধ্যে বা একটি Release
অবজেক্টের অংশ হিসাবে একটি প্রি-রিলিজ চেক হিসাবে ইন-লাইনে উল্লেখ করা যেতে পারে।
JSON প্রতিনিধিত্ব | |
---|---|
{
"testCases": [
{
object ( |
ক্ষেত্র | |
---|---|
testCases[] | |
পরীক্ষা ক্ষেত্রে
TestCase
বার্তাগুলি অনুরোধের প্রসঙ্গ এবং প্রদত্ত প্রসঙ্গটি অনুমোদিত বা অস্বীকার করা হবে কিনা সে সম্পর্কে একটি প্রত্যাশা প্রদান করে। পরীক্ষার ক্ষেত্রে request
, resosurce
, এবং functionMocks
নির্দিষ্ট করতে পারে একটি পরিষেবা-প্রদত্ত ফাংশনে ফাংশন কলকে উপহাস করার জন্য।
request
বস্তু অনুরোধের সময়ে উপস্থিত প্রসঙ্গ উপস্থাপন করে।
resource
হল টার্গেট রিসোর্সের মান (যেমন, একটি জিসিএস অবজেক্টের মেটাডেটা বা ফায়ারস্টোর ডকুমেন্ট) কারণ অনুরোধটি কার্যকর করার আগে এটি ক্রমাগত স্টোরেজে প্রদর্শিত হয়।
এছাড়াও ক্লাউড ফায়ারস্টোর ( অনুরোধ , সংস্থান ) এবং ফায়ারবেসের জন্য ক্লাউড স্টোরেজ ( অনুরোধ , সংস্থান ) এর জন্য সম্পর্কিত রেফারেন্স ডকুমেন্টেশন দেখুন।
JSON প্রতিনিধিত্ব | |
---|---|
{ "expectation": enum ( |
ক্ষেত্র | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
expectation | পরীক্ষার প্রত্যাশা। | ||||||||||||||||
request | প্রসঙ্গ অনুরোধ. অনুরোধের প্রেক্ষাপটের সঠিক বিন্যাসটি পরিষেবা-নির্ভর। অনুরোধে সমর্থিত ক্ষেত্র এবং প্রকার সম্পর্কে তথ্যের জন্য উপযুক্ত পরিষেবা ডকুমেন্টেশন দেখুন। সর্বনিম্নভাবে, সমস্ত পরিষেবা নিম্নলিখিত ক্ষেত্র এবং প্রকারগুলিকে সমর্থন করে:
অনুরোধ মান পরিষেবার জন্য ভালভাবে গঠিত না হলে, অনুরোধটি একটি অবৈধ যুক্তি হিসাবে প্রত্যাখ্যান করা হবে। | ||||||||||||||||
resource | ঐচ্ছিক রিসোর্স ভ্যালু যেমনটি রিকোয়েস্ট পূর্ণ হওয়ার আগে ক্রমাগত স্টোরেজে দেখা যায়। রিসোর্সের ধরন | ||||||||||||||||
functionMocks[] | ঐচ্ছিক নিয়ম ফাংশন পরিষেবা-সংজ্ঞায়িত ফাংশন জন্য উপহাস. যদি সেট না করা হয়, কোনো পরিষেবা-সংজ্ঞায়িত নিয়ম ফাংশন একটি ত্রুটি ফেরত দেবে বলে আশা করা হয়, যা পরীক্ষার ফলাফলকে প্রভাবিত করতে পারে বা নাও করতে পারে। | ||||||||||||||||
pathEncoding | পাথ (যেমন request.path) এনকোড করা হয়েছে কিনা এবং কিভাবে তা নির্দিষ্ট করে। | ||||||||||||||||
expressionReportLevel | প্রতিক্রিয়াতে কী অন্তর্ভুক্ত করা উচিত তা নির্দিষ্ট করে। |
প্রত্যাশা
সমর্থিত পরীক্ষার ক্ষেত্রে প্রত্যাশার সেট।
Enums | |
---|---|
EXPECTATION_UNSPECIFIED | অনির্দিষ্ট প্রত্যাশা। |
ALLOW | একটি অনুমোদিত ফলাফল আশা করুন. |
DENY | একটি অস্বীকার ফলাফল আশা. |
ফাংশনমক
মক রুলস ফাংশনের সংজ্ঞা।
Mocks লক্ষ্য পরিষেবা দ্বারা ঘোষিত একটি ফাংশন উল্লেখ করা আবশ্যক. ফাংশন args এর ধরন এবং ফলাফল পরীক্ষার সময় অনুমান করা হবে। যদি হয় আর্গ বা ফলাফলের মানগুলি ফাংশন প্রকার ঘোষণার সাথে সামঞ্জস্যপূর্ণ না হয়, তাহলে অনুরোধটি অবৈধ বলে বিবেচিত হবে৷
একটি প্রদত্ত ফাংশনের নামের জন্য একাধিক FunctionMock
প্রদান করা হতে পারে যতক্ষণ না Arg
ম্যাচারগুলি স্বতন্ত্র হয়। একটি প্রদত্ত ওভারলোডের জন্য শুধুমাত্র একটি ফাংশন থাকতে পারে যেখানে সমস্ত Arg
মান হল Arg.any_value
।
JSON প্রতিনিধিত্ব | |
---|---|
{ "function": string, "args": [ { object ( |
ক্ষেত্র | |
---|---|
function | ফাংশনের নাম। ফাংশনের নাম অবশ্যই একটি পরিষেবা ঘোষণা দ্বারা প্রদত্ত একটির সাথে মিলতে হবে৷ |
args[] | মেলার জন্য |
result | ফাংশন কলের মক ফলাফল। |
আরগ
মক ফাংশনের জন্য Arg matchers.
JSON প্রতিনিধিত্ব | |
---|---|
{ // Union field |
ক্ষেত্র | ||
---|---|---|
ইউনিয়ন ক্ষেত্রের type । সমর্থিত যুক্তি মান. type নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | ||
exactValue | যুক্তি প্রদত্ত মানের সাথে হুবহু মেলে। | |
anyValue | যুক্তি প্রদত্ত যেকোন মানের সাথে মেলে। |
ফলাফল
ফাংশন মক ইনভোকেশন থেকে সম্ভাব্য ফলাফলের মান।
JSON প্রতিনিধিত্ব | |
---|---|
{ // Union field |
ক্ষেত্র | ||
---|---|---|
ইউনিয়ন ক্ষেত্রের type । সমর্থিত ফলাফল মান. type নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | ||
value | ফলাফল একটি প্রকৃত মান. মানের প্রকার অবশ্যই পরিষেবা দ্বারা ঘোষিত প্রকারের সাথে মিলবে৷ | |
undefined | ফলাফলটি অনির্ধারিত, যার অর্থ ফলাফল গণনা করা যায়নি। |
পাথএনকোডিং
ব্যবহৃত পাথ এনকোডিংয়ের ধরন।
Enums | |
---|---|
ENCODING_UNSPECIFIED | কোন এনকোডিং নির্দিষ্ট করা হয়নি. "URL_ENCODED" আচরণে ডিফল্ট। |
URL_ENCODED | পাথ সেগমেন্টগুলিকে ইউআরএল এনকোড করা কিন্তু নন-এনকোডেড সেপারেটর ("/") হিসেবে বিবেচনা করে। এটাই স্বাভাবিক ব্যবহার। |
PLAIN | টোটাল পাথকে নন-ইউআরএল এনকোড করা যেমন কাঁচা হিসাবে বিবেচনা করে। |
এক্সপ্রেশন রিপোর্ট লেভেল
এক্সপ্রেশন রিপোর্টের প্রতিক্রিয়াতে যে পরিমাণ ডেটা অন্তর্ভুক্ত করতে হবে।
Enums | |
---|---|
LEVEL_UNSPECIFIED | কোন স্তর নির্দিষ্ট করা হয়নি. "NONE" আচরণে ডিফল্ট। |
NONE | কোন অতিরিক্ত তথ্য অন্তর্ভুক্ত করবেন না. |
FULL | মূল্যায়ন করা অভিব্যক্তির বিস্তারিত প্রতিবেদন অন্তর্ভুক্ত করুন। |
VISITED | শুধুমাত্র মূল্যায়নের সময় পরিদর্শন করা অভিব্যক্তি অন্তর্ভুক্ত করুন। |
সমস্যা
সমস্যাগুলির মধ্যে রয়েছে সতর্কতা, ত্রুটি এবং অবচয় সংক্রান্ত বিজ্ঞপ্তি৷
JSON প্রতিনিধিত্ব | |
---|---|
{ "sourcePosition": { object ( |
ক্ষেত্র | |
---|---|
sourcePosition | |
description | সংক্ষিপ্ত ত্রুটি বিবরণ. |
severity | সমস্যার তীব্রতা। |
সোর্স পজিশন
এর লাইন, কলাম নম্বর, এবং Source
বার্তায় File
একটি সূচী সহ Source
বিষয়বস্তুর অবস্থান। ডিবাগ উদ্দেশ্যে ব্যবহৃত হয়।
JSON প্রতিনিধিত্ব | |
---|---|
{ "fileName": string, "line": integer, "column": integer, "currentOffset": integer, "endOffset": integer } |
ক্ষেত্র | |
---|---|
fileName | |
line | উৎস খণ্ডের লাইন সংখ্যা। 1-ভিত্তিক। |
column | সোর্স ফ্র্যাগমেন্টের সাথে যুক্ত সোর্স লাইনের প্রথম কলাম। |
currentOffset | ফাইলের শুরুর সাথে সম্পর্কিত শুরু অবস্থান। |
endOffset | ফাইলের শুরুর সাথে সম্পর্কিত শেষ অবস্থান। |
নির্দয়তা
সমস্যার তীব্রতার সেট।
Enums | |
---|---|
SEVERITY_UNSPECIFIED | একটি অনির্দিষ্ট তীব্রতা। |
DEPRECATION | বিবৃতি এবং পদ্ধতির জন্য অবচয় সমস্যা যা আর সমর্থিত বা বজায় রাখা যাবে না। |
WARNING | সতর্কতা যেমন: অব্যবহৃত ভেরিয়েবল। |
ERROR | ত্রুটি যেমন: অতুলনীয় কোঁকড়া ধনুর্বন্ধনী বা পরিবর্তনশীল পুনঃসংজ্ঞা। |
পরীক্ষার ফলাফল
পরীক্ষার ফলাফলের বার্তা যাতে পরীক্ষার অবস্থার পাশাপাশি পরীক্ষার ব্যর্থতার জন্য একটি বিবরণ এবং উত্স অবস্থান থাকে।
JSON প্রতিনিধিত্ব | |
---|---|
{ "state": enum ( |
ক্ষেত্র | |
---|---|
state | পরীক্ষার অবস্থা। |
debugMessages[] | মূল্যায়নের সময় পরীক্ষা সম্পাদনের সমস্যাগুলির সাথে সম্পর্কিত বার্তাগুলি ডিবাগ করুন৷ ডিবাগ বার্তাগুলি ফাংশন মকগুলির খুব বেশি বা খুব কম আহ্বানের সাথে বা মূল্যায়নের সময় ঘটে যাওয়া রানটাইম ত্রুটির সাথে সম্পর্কিত হতে পারে। উদাহরণস্বরূপ: |
errorPosition | একটি অভিব্যক্তি মূল্যায়ন একটি ত্রুটি হতে পারে. নিয়মগুলি ডিফল্টরূপে অস্বীকার করা হয়, তাই যখন একটি ত্রুটি তৈরি হয় তখন একটি যেমন |
functionCalls[] | পরিষেবা-সংজ্ঞায়িত পদ্ধতিতে করা ফাংশন কলের সেট। ফাংশন কলগুলি মূল্যায়নের সময় যে ক্রমে সম্মুখীন হয় সেই ক্রমে অন্তর্ভুক্ত করা হয়, উপহাস করা এবং আনমক করা উভয় ফাংশনের জন্য সরবরাহ করা হয় এবং পরীক্ষার |
visitedExpressions[] | প্রদত্ত পরীক্ষার জন্য ভিজিট করা অনুমতি এক্সপ্রেশনের সেট। এটি পরীক্ষার ক্ষেত্রে প্রাসঙ্গিক সমস্ত পরিদর্শন অনুমতি অভিব্যক্তির অবস্থান এবং মূল্যায়ন ফলাফল প্রদান করে, যেমন
মধ্যবর্তী মূল্যায়ন রাজ্যগুলির একটি বিশদ প্রতিবেদনের জন্য, |
expressionReports[] | AST রুলসেটের এক্সপ্রেশন থেকে মানচিত্রে ম্যাপিং যা তাদের মূল্যায়ন করা হয়েছিল। AST কাঠামো মিরর করার জন্য আংশিক-নেস্টেড। মনে রাখবেন যে এই ক্ষেত্রটি আসলে এক্সপ্রেশন ট্র্যাক করছে এবং উপরের "ভিজিটেড এক্সপ্রেশন" ফিল্ডের বিপরীতে অনুমতি বিবৃতি নয়। আক্ষরিক অভিব্যক্তি বাদ দেওয়া হয়। |
অবস্থা
পরীক্ষার ফলাফলের জন্য বৈধ রাজ্য।
Enums | |
---|---|
STATE_UNSPECIFIED | পরীক্ষার অবস্থা সেট করা নেই। |
SUCCESS | পরীক্ষা সফল হয়। |
FAILURE | পরীক্ষা একটি ব্যর্থতা। |
ফাংশনকল
একটি পরিষেবা-সংজ্ঞায়িত ফাংশন কল প্রতিনিধিত্ব করে যা পরীক্ষা সম্পাদনের সময় আহ্বান করা হয়েছিল।
JSON প্রতিনিধিত্ব | |
---|---|
{ "function": string, "args": [ value ] } |
ক্ষেত্র | |
---|---|
function | আমন্ত্রিত ফাংশনের নাম। |
args[] | ফাংশন প্রদান করা হয়েছে যে যুক্তি. |
এক্সপ্রেশন পরিদর্শন করেছেন
নিয়মে পরিদর্শন করা একটি অভিব্যক্তির জন্য অবস্থান এবং অ্যাক্সেস ফলাফল সংরক্ষণ করুন।
JSON প্রতিনিধিত্ব | |
---|---|
{
"sourcePosition": {
object ( |
ক্ষেত্র | |
---|---|
sourcePosition | |
value | পরিদর্শন করা এক্সপ্রেশনের মূল্যায়ন করা মান, যেমন সত্য/মিথ্যা |
এক্সপ্রেশন রিপোর্ট
একটি ফাইলে একটি অভিব্যক্তি কোথায় পাওয়া যায় এবং এটি ব্যবহারের সময় কি মূল্যায়ন করা হয়েছিল তা বর্ণনা করে।
JSON প্রতিনিধিত্ব | |
---|---|
{ "sourcePosition": { object ( |
ক্ষেত্র | |
---|---|
sourcePosition | মূল নিয়ম উৎসে অভিব্যক্তির অবস্থান। |
values[] | এই অভিব্যক্তিটি যখন সম্মুখীন হয় তখন মূল্যায়ন করা হয়। |
children[] | সাব এক্সপ্রেশন |
মান গণনা
কতবার একটি অভিব্যক্তিকে একটি নির্দিষ্ট ExpressionValue-এ মূল্যায়ন করা হয়েছে তার জন্য Tuple.
JSON প্রতিনিধিত্ব | |
---|---|
{ "value": value, "count": integer } |
ক্ষেত্র | |
---|---|
value | এক্সপ্রেশনের রিটার্ন মান |
count | সেই অভিব্যক্তিটি কতবার ফিরে এসেছে। |