में आरजीबी/RGBA रंग मान कहानी:कोणमापक
हमारे परीक्षण codebase में कई स्थानों में हम उम्मीद मूल्यों के बराबर होना करने के लिए अलग सीएसएस मूल्यों पर जोर। आमतौर पर, यह color
, background-color
, font
संबंधित शैली गुण, या cursor
है। यह सवाल रंगों से निपटने के बारे में है।
describe("AngularJS home page", function() {
beforeEach(function() {
browser.get("https://angularjs.org/");
});
it("should show a blue Download button", function() {
var downloadButton = element(by.partialLinkText("Download"));
expect(downloadButton.getCssValue("background-color")).toEqual("rgba(0, 116, 204, 1)");
});
});
यह जाँच करता है AngularJS वेबसाइट पर डाउनलोड बटन 0, 116, 204, 1
RGBA मूल्य होता है:
यहाँ एक उदाहरण काम कर परीक्षण है कि वर्तमान में गुजरता है।
अब, अगर रंग बदल जाएगा, परीक्षण के रूप में विफल हो जाएगा, उदाहरण के लिए:
Expected 'rgba(0, 116, 204, 1)' to equal 'rgba(255, 116, 204, 1)'.
समस्याएं:
आप देख सकते हैं सब से पहले, उम्मीद खुद को काफी पठनीय नहीं है। जब तक हम इसके पास कोई टिप्पणी नहीं करते, यह स्पष्ट नहीं है कि हम किस रंग को देखने की उम्मीद कर रहे हैं।
इसके अलावा, त्रुटि संदेश जानकारीपूर्ण नहीं है। यह स्पष्ट नहीं है कि वास्तविक रंग क्या है और हम किस रंग को देखने की उम्मीद कर रहे हैं।
प्रश्न:
इसे सुधारने परीक्षण ही और त्रुटि संदेश अधिक पठनीय और सूचनात्मक होने के लिए और बदले रंग आरजीबी/RGBA महत्व देता की रंग नामों संचालित करने के लिए संभव है?
वांछित उम्मीद:
expect(downloadButton).toHaveBackgroundColor("midnight blue");
वांछित त्रुटि संदेश:
Expect 'blue' to equal 'black'
Expect 'dark grey' to equal 'light sea green'
वर्तमान में, मैं एक कस्टम चमेली मिलानकर्ता कि RGB/RGBA
मूल्य बदल जाएगा बनाने के बारे में सोच रहा हूँ एक कस्टम Color
ऑब्जेक्ट जो मूल को बनाए रखेगा अल मूल्य के साथ ही निकटतम रंग निर्धारित करें। color
एनपीएम पैकेज बहुत ही आशाजनक दिखता है।
किसी भी संकेत की सराहना करेंगे।
सभी गणना मूल्यों नामित रंग के अनुरूप करने की गारंटी कर रहे हैं? – BoltClock
@ बोल्टक्लॉक अच्छा सवाल है। मैं rgb-> रंग नाम के बीच कुछ आधार मैपिंग के साथ चिपके रहूंगा, और यदि कोई रंग नाम नहीं मिला है, तो हम केवल वास्तविक मूल आरजीबी (ए) मान दिखा सकते हैं..मैं समझता हूं, शायद यह बुलेट प्रूफ नहीं होगा, लेकिन मुझे व्यावहारिक उम्मीद है। – alecxe
अधिकांश वेबसाइटों में रंगों का अपना सेट होता है, आमतौर पर उनमें से बहुत कुछ नहीं होता है, लेकिन यह एक डिज़ाइन पर निर्भर करता है। मैं रंगीन और रंगीन नामों के लिए एक मानचित्र के रूप में एक साधारण जेएस ऑब्जेक्ट बनाने के बारे में सोचूंगा, जो आपकी वेबसाइट के लिए विशिष्ट है, और किसी अन्य lib पर भरोसा नहीं करता: '{'red': 'rgba (255, 0, 0, 1)', ' नीला ':' आरजीबीए (0, 0, 255, 1) '}' और उनके खिलाफ मैच। –