سويفت ويتفوريكسكتاتيونسويثتيموت هاندلر
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
شكتستكيس ويتفوريكسكتاتيونسويثتيميوت: معالج: رمي EXC_BAD_ACCESS عندما لا يتم الوفاء بالتوقع.
أنا اختبار مكالمة غير متزامنة باستخدام شكتستكسكتاتيون.
تعمل التعليمات البرمجية التالية (ينجح الاختبار) عند تنفيذ كومبليتيونهاندلر قبل مهلة 1 ثانية.
ومع ذلك، إذا كان لا يتم استدعاء إكستراكتيونهاندلر، وبالتالي فإن التوقعات لم تتحقق، بدلا من الحصول على فشل الاختبار عند استدعاء ويتفوريكسكتاتيونسويثتيميوت أحصل على EXC_BAD_ACCESS، وهو ليس مفيد جدا لأن هذا يجعل من المستحيل أن نرى نتائج جناح الاختبار كله.
كيف يمكنني تجنب هذا والحصول على فشل الاختبار العادي؟
يبدو أن ما يسبب EXC_BAD_ACCESS يمر وصف لا شيء عند إنشاء التوقعات.
إن تمرير أي سلسلة لهذه المكالمة يجعلها تعمل ونحصل على فشل الاختبار المتوقع عندما لا يتم الوفاء بالتوقع.
سويفت ويتفوريكسكتاتيونسويثتيموت هاندلر
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
سويفت أسينك التعامل مع الحدث مع كسكودي واجهة المستخدم الاختبار.
أنا باستخدام سريع ل ككود أوي اختبار التطبيق. طلبنا تحت الاختبار أحيانا للملوثات العضوية الثابتة "صندوق التنبيه" الذي يؤثر على تدفق العمل العادي من حالة الاختبار. لا توجد طريقة للتنبؤ عندما يظهر المنبثقة. قد تظهر في حالة الاختبار 1 أو اختبار رقم القضية س.
أردت أن أرفض "صندوق التنبيه" والاستمرار مع بقية حالة الاختبار. كيف يمكنني التعامل مع حدث مماثل من الطبيعة أسينك مع إطار سريع ككيتست، دون التأثير على التدفق الطبيعي لحالة الاختبار؟
حتى الآن وجدت:
وهذا غير ممكن بسبب سببين.
مهلة لا يمكن التنبؤ بها.
هو منع تدفق حالة الاختبار.
هل هناك طريقة عامة للتعامل مع الأحداث غير المتزامنة عبر الجناح؟ كيف يمكنني الاستمرار في الاختبار بينما ينتظر مؤشر ترابط آخر ل "تنبيه مربع" الحدث تظهر؟
ستيفن هو الحق، يجب أن يعمل رصد انقطاع واجهة المستخدم بشكل جيد. أوصي إضافته إلى إعداد الاختبار الخاص بك حتى يعمل لجميع الاختبارات الخاصة بك.
انتظر للتوقعات مع المهلة: معالج:
الانتظار حتى يتم الوفاء بجميع التوقعات أو تم التوصل إلى المهلة.
إعلان.
المعلمات.
مقدار الوقت الذي يجب أن تتحقق فيه جميع التوقعات.
كتلة إكسيت إكستراكتيون هاندلر اختيارية لاستدعاء عندما يتم استيفاء جميع التوقعات أو عندما يتم تشغيل مهلة الانتظار. (يتم التعامل مع المهلة دائما على أنها فشل اختبار.)
نقاش.
هذا الأسلوب يخلق نقطة التزامن في تدفق الاختبار. انتظار واحد فقط للتوقعات مع المهلة: معالج: يمكن أن تكون نشطة في أي وقت من الأوقات، ولكن تسلسل منفصلة متعددة من & كوت؛ خلق التوقعات والانتظار حتى يتم الوفاء بها & كوت؛ يمكن أن تكون بالسلاسل معا.
وينتظر هذا الأسلوب على التوقعات التي تم إنشاؤها باستخدام أساليب شكتست & # x27؛ s الراحة فقط. هذه الطريقة لا تنتظر على التوقعات التي تم إنشاؤها يدويا عن طريق التهيئة على ككتست التوقعات أو فئاتها الفرعية.
لانتظار التوقعات التي تم إنشاؤها يدويا، استخدم الانتظار للتوقعات: المهلة: أو الانتظار للتوقعات: المهلة: فرض الأمر: طرق، أو الطرق المقابلة على شكتوايتر، تمرير قائمة صريحة من التوقعات.
يجب على العملاء عدم التلاعب حلقة تشغيل أثناء استخدام هذا أبي.
في انتظار التوقعات.
ينتظر على مجموعة من التوقعات لمدة تصل إلى المهلة المحددة.
ينتظر على مجموعة من التوقعات ويحدد ما إذا كان يجب الوفاء بها في ترتيب معين.
كتلة ليتم استدعاؤها عند مكالمة الانتظار ل التوقعات مع المهلة: معالج: لديه كل من توقعات الوفاء بها، أو أوقات خارج.
رموز الخطأ للأخطاء التي يمكن أن تحدث أثناء انتظار التوقعات إلى الوفاء بها.
نطاق خطأ للأخطاء التي يمكن أن تحدث أثناء انتظار تحقيق التوقعات.
اختبار غير متزامن مع هكود 6.
في عام 2018، أبل شحنها إطار اختبار تجديد في كسكودي دعا شكتست، وكان هناك الكثير من البهجة. لم يتم تحديث الإطار القديم منذ سنوات، وقد نشأ عدد من أدوات وأطر اختبار الطرف الثالث لتوفير ميزات وقدرات جديدة. كان من الجيد أن نرى المدمج في أدوات الحصول على بعض الحب مرة أخرى، وهذا العام، أبل هو شحن بعض الميزات مع كسكودي 6 التي كانت في عداد المفقودين من التحديث الماضي Ђ s ™. واحد áЂЂ ™ م سعيدة بشكل خاص أن نرى هو دعم لاختبار غير متزامن.
إذا كان لدينا اختبار يجب أن تبدأ مهمة غير متزامنة، سواء كان يتم تشغيلها في مؤشر ترابط آخر أو في رونلوب الموضوع الرئيسي ЂЂ،، كيف يمكننا اختبار ذلك؟
فكر في طلب ويب. يمكن أن نبدأ طلب ويب وتمرير في كتلة الانتهاء، ثم جعل لدينا تأكيدات الاختبار، إما في معالج الانتهاء أم لا. ومع ذلك، لأنه لم يتم حتى طلب الويب حتى الآن، حتى أقل استجابة وردت ولا قد تم استدعاء كتلة الانتهاء لدينا، وطريقة الاختبار لدينا هو الذهاب للخروج قبل تأكيد التأكيدات من أي وقت مضى.
دعونا ننظر إلى اختبار لفئة التي تقوم بتنزيل صفحات الويب. عادة، نحن لن نرغب في جعل طلبات الويب الفعلية في الاختبارات. وبدلا من ذلك، نقوم بربط الطلبات باستخدام بعض الأدوات (جزء جزئي إلى أوهتبتبوس). ولكن لأغراض هذه الأمثلة، ونحن سوف ليرة لبنانية كسر بعض القواعد وجعل طلبات الويب الحقيقية.
يمكننا أن نعطي الفئة تحت الاختبار عنوان ورل وكتلة معالج الانتهاء، وسوف تحميل الصفحة وندعو كتلة، ويمر في سلسلة تحتوي على صفحة ويب أو سلسلة فارغة إذا حدث فشل. إيت ليس ™ أبي كبيرة، ولكن مرة أخرى، ونحن break كسر بعض القواعد. ومع ذلك، فإن رمز الاختبار أدناه لن تفشل أبدا. ستعود طريقة الاختبار دون إعطاء كتلة كومبليتيونهاندلر فرصة ليتم استدعاؤها.
قبل نسخة كسكود 6†™ من شكتست، فقط باستخدام ما يأتي في القصدير مع كسكود، يمكن أن نجلس وتدور في حلقة في حين أن يدعو حلقة تشغيل الموضوع الرئيسي ™ s حتى وصول الاستجابة أو انقضت فترة المهلة. هنا s العمل رمز الاختبار، الطريقة القديمة.
تقوم الحلقة أثناء تشغيل حلقة التشغيل الرئيسية ЂЂ s s لمدة 10 مللي ثانية في المرة الواحدة حتى يصل الرد، أو حتى 5 ثوان ينتهي دون أن وصلت. هذا هو صالح للخدمة. هذا ليس رهيبة. انها ليست نهاية العالم تطوير البرمجيات "ولكن itЂЂ ™ ليست كبيرة.
الآن هناكЂ s s أفضل طريقة.
توقعات عالية.
مع كسكودي 6، وأضافت أبل توقعات الاختبار إلى إطار ككتست في شكل فئة ككتستكسكتاتيون. عندما نخلق توقعات الاختبار، يتوقع إطار الاختبار أنه سيتم الوفاء بها في مرحلة ما في المستقبل. لدينا رمز الاختبار يلبي التوقعات في كتلة الانتهاء مع استدعاء الأسلوب شكتيستكسكتاتيون الوفاء. هذا يأخذ مكان وضع العلم مثل استجابة هاسريفيد في المثال السابق. ثم نقول إطار الاختبار للانتظار (مع مهلة) لتوقعاتها إلى أن يتم الوفاء بها عن طريق الأسلوب ككتستكيس ويتفوريكسكتاتيونسويثتيميوت: معالج:. إذا تم تنفيذ معالج الإكمال خلال المهلة والمكالمات الوفاء، ثم كل من التوقعات ™ s سيكون قد تم الوفاء بها. إذا لم يكن كذلك، فإن الاختبار سيعيش حزين، وحيدا، ونيففيلد الوجودЂЂ حتى يخرج من النطاق. وعن طريق العيش حزين، وحيدا، وعدم وجود الوجود، أعني أن التوقعات تفشل الاختبار عند توقيت.
إن التوقعات الفاشلة يجب أن لا تشعر بذلك. تذكر أن النتيجة الفاشلة ليست علامة على اختبار سيئ؛ نتيجة غير محددة هي. هذا التوقع يمكن أن يشعر بالفخر كما يعلن الفشل.
مثال هنا باستخدام ككتستكسكتاتيون:
خلق التوقعات مع وصف لجعل النتائج أكثر قابلية للقراءة. في كتلة الإنجاز، استدعاء [توقع الوفاء] لنقول للاختبار أن هذا التوقع قد تم بالفعل الوفاء به. ثم شنق في ويتفوريكسكتاتيونسويثتيميوت: معالج: حتى يتم إرسال الطلب، وصول الاستجابة ويسمى معالج الانتهاء لدينا Ђ or أو مهلة يحدث.
وهذا جيد جدا ™ Object الهدف - C، ولكن يمكننا أيضا أن نفعل ذلك في أبل سو ™ لامعة جديدة سويفت اللغة.
و ذلك Ђ ™ ق ذلك. إيتاس ™ ق فئة سهلة الاستخدام لاختبار رمز غير متزامن.
هل يمكن الحصول على معلومات كافية عن نظام التشغيل يوس 8 و سويفت؟ الانضمام إلينا لدينا بداية دائرة الرقابة الداخلية مع سويفت والمتقدمة دائرة الرقابة الداخلية بوتكامبس.
الوظائف ذات الصلة:
احدث التعليقات.
تطوير التطبيقات.
تدريب فريق.
شركة.
حقوق الطبع والنشر والنسخ. 1998 - 2017 بيج نيرد رانش، ليك. كل الحقوق محفوظة. | سياسة الخصوصية.
جانبورو-سان / روتر.
ماذا تريد ان تفعل؟
علق هيساندوفال 7 يناير 2018.
كانت مشاركة المدونة هذه مقروءة رائعة. حاليا لي وزميل من الألغام يعملون على حل مشابهة جدا لهذا واحد. والفرق الوحيد هو أننا بحاجة إلى إرسال الصور التي التقطت على اي فون. لدينا بالفعل مسار الصورة، ونحن نواجه مشكلة في الحصول على بيانات الصورة وإضافة ذلك إلى طلب آخر. إذا كان لديك أي اقتراحات أو مساعدة هل يمكن أن تعطينا التي من شأنها أن تكون رهيبة!
كولينتا علق مارس 3، 2018.
@ جانبورو-سان اعتقدت أنني ضرب بيديرت مع هذا المنصب، ولكن أهم رمز مفقود! كيف يقوم ListRouter. Upload بإنشاء طلب متعدد الأجزاء؟
فيكتوسفات علق 7 أبريل، 2018.
فوجئت لم ألامو النار لا تدعم التحميل المتعدد كما بنيت، لأنه أمر شائع جدا. شكرا على المشاركة.
&نسخ؛ 2017 جيثب، Inc. شروط الخصوصية تعليمات حالة الأمان.
لا يمكنك تنفيذ هذا الإجراء في الوقت الحالي.
لقد سجلت الدخول باستخدام علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة. لقد سجلت الخروج في علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة.
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
سويفت أسينك التعامل مع الحدث مع كسكودي واجهة المستخدم الاختبار.
أنا باستخدام سريع ل ككود أوي اختبار التطبيق. طلبنا تحت الاختبار أحيانا للملوثات العضوية الثابتة "صندوق التنبيه" الذي يؤثر على تدفق العمل العادي من حالة الاختبار. لا توجد طريقة للتنبؤ عندما يظهر المنبثقة. قد تظهر في حالة الاختبار 1 أو اختبار رقم القضية س.
أردت أن أرفض "صندوق التنبيه" والاستمرار مع بقية حالة الاختبار. كيف يمكنني التعامل مع حدث مماثل من الطبيعة أسينك مع إطار سريع ككيتست، دون التأثير على التدفق الطبيعي لحالة الاختبار؟
حتى الآن وجدت:
وهذا غير ممكن بسبب سببين.
مهلة لا يمكن التنبؤ بها.
هو منع تدفق حالة الاختبار.
هل هناك طريقة عامة للتعامل مع الأحداث غير المتزامنة عبر الجناح؟ كيف يمكنني الاستمرار في الاختبار بينما ينتظر مؤشر ترابط آخر ل "تنبيه مربع" الحدث تظهر؟
ستيفن هو الحق، يجب أن يعمل رصد انقطاع واجهة المستخدم بشكل جيد. أوصي إضافته إلى إعداد الاختبار الخاص بك حتى يعمل لجميع الاختبارات الخاصة بك.
انتظر للتوقعات مع المهلة: معالج:
الانتظار حتى يتم الوفاء بجميع التوقعات أو تم التوصل إلى المهلة.
إعلان.
المعلمات.
مقدار الوقت الذي يجب أن تتحقق فيه جميع التوقعات.
كتلة إكسيت إكستراكتيون هاندلر اختيارية لاستدعاء عندما يتم استيفاء جميع التوقعات أو عندما يتم تشغيل مهلة الانتظار. (يتم التعامل مع المهلة دائما على أنها فشل اختبار.)
نقاش.
هذا الأسلوب يخلق نقطة التزامن في تدفق الاختبار. انتظار واحد فقط للتوقعات مع المهلة: معالج: يمكن أن تكون نشطة في أي وقت من الأوقات، ولكن تسلسل منفصلة متعددة من & كوت؛ خلق التوقعات والانتظار حتى يتم الوفاء بها & كوت؛ يمكن أن تكون بالسلاسل معا.
وينتظر هذا الأسلوب على التوقعات التي تم إنشاؤها باستخدام أساليب شكتست & # x27؛ s الراحة فقط. هذه الطريقة لا تنتظر على التوقعات التي تم إنشاؤها يدويا عن طريق التهيئة على ككتست التوقعات أو فئاتها الفرعية.
لانتظار التوقعات التي تم إنشاؤها يدويا، استخدم الانتظار للتوقعات: المهلة: أو الانتظار للتوقعات: المهلة: فرض الأمر: طرق، أو الطرق المقابلة على شكتوايتر، تمرير قائمة صريحة من التوقعات.
يجب على العملاء عدم التلاعب حلقة تشغيل أثناء استخدام هذا أبي.
في انتظار التوقعات.
ينتظر على مجموعة من التوقعات لمدة تصل إلى المهلة المحددة.
ينتظر على مجموعة من التوقعات ويحدد ما إذا كان يجب الوفاء بها في ترتيب معين.
كتلة ليتم استدعاؤها عند مكالمة الانتظار ل التوقعات مع المهلة: معالج: لديه كل من توقعات الوفاء بها، أو أوقات خارج.
رموز الخطأ للأخطاء التي يمكن أن تحدث أثناء انتظار التوقعات إلى الوفاء بها.
نطاق خطأ للأخطاء التي يمكن أن تحدث أثناء انتظار تحقيق التوقعات.
اختبار غير متزامن مع هكود 6.
في عام 2018، أبل شحنها إطار اختبار تجديد في كسكودي دعا شكتست، وكان هناك الكثير من البهجة. لم يتم تحديث الإطار القديم منذ سنوات، وقد نشأ عدد من أدوات وأطر اختبار الطرف الثالث لتوفير ميزات وقدرات جديدة. كان من الجيد أن نرى المدمج في أدوات الحصول على بعض الحب مرة أخرى، وهذا العام، أبل هو شحن بعض الميزات مع كسكودي 6 التي كانت في عداد المفقودين من التحديث الماضي Ђ s ™. واحد áЂЂ ™ م سعيدة بشكل خاص أن نرى هو دعم لاختبار غير متزامن.
إذا كان لدينا اختبار يجب أن تبدأ مهمة غير متزامنة، سواء كان يتم تشغيلها في مؤشر ترابط آخر أو في رونلوب الموضوع الرئيسي ЂЂ،، كيف يمكننا اختبار ذلك؟
فكر في طلب ويب. يمكن أن نبدأ طلب ويب وتمرير في كتلة الانتهاء، ثم جعل لدينا تأكيدات الاختبار، إما في معالج الانتهاء أم لا. ومع ذلك، لأنه لم يتم حتى طلب الويب حتى الآن، حتى أقل استجابة وردت ولا قد تم استدعاء كتلة الانتهاء لدينا، وطريقة الاختبار لدينا هو الذهاب للخروج قبل تأكيد التأكيدات من أي وقت مضى.
دعونا ننظر إلى اختبار لفئة التي تقوم بتنزيل صفحات الويب. عادة، نحن لن نرغب في جعل طلبات الويب الفعلية في الاختبارات. وبدلا من ذلك، نقوم بربط الطلبات باستخدام بعض الأدوات (جزء جزئي إلى أوهتبتبوس). ولكن لأغراض هذه الأمثلة، ونحن سوف ليرة لبنانية كسر بعض القواعد وجعل طلبات الويب الحقيقية.
يمكننا أن نعطي الفئة تحت الاختبار عنوان ورل وكتلة معالج الانتهاء، وسوف تحميل الصفحة وندعو كتلة، ويمر في سلسلة تحتوي على صفحة ويب أو سلسلة فارغة إذا حدث فشل. إيت ليس ™ أبي كبيرة، ولكن مرة أخرى، ونحن break كسر بعض القواعد. ومع ذلك، فإن رمز الاختبار أدناه لن تفشل أبدا. ستعود طريقة الاختبار دون إعطاء كتلة كومبليتيونهاندلر فرصة ليتم استدعاؤها.
قبل نسخة كسكود 6†™ من شكتست، فقط باستخدام ما يأتي في القصدير مع كسكود، يمكن أن نجلس وتدور في حلقة في حين أن يدعو حلقة تشغيل الموضوع الرئيسي ™ s حتى وصول الاستجابة أو انقضت فترة المهلة. هنا s العمل رمز الاختبار، الطريقة القديمة.
تقوم الحلقة أثناء تشغيل حلقة التشغيل الرئيسية ЂЂ s s لمدة 10 مللي ثانية في المرة الواحدة حتى يصل الرد، أو حتى 5 ثوان ينتهي دون أن وصلت. هذا هو صالح للخدمة. هذا ليس رهيبة. انها ليست نهاية العالم تطوير البرمجيات "ولكن itЂЂ ™ ليست كبيرة.
الآن هناكЂ s s أفضل طريقة.
توقعات عالية.
مع كسكودي 6، وأضافت أبل توقعات الاختبار إلى إطار ككتست في شكل فئة ككتستكسكتاتيون. عندما نخلق توقعات الاختبار، يتوقع إطار الاختبار أنه سيتم الوفاء بها في مرحلة ما في المستقبل. لدينا رمز الاختبار يلبي التوقعات في كتلة الانتهاء مع استدعاء الأسلوب شكتيستكسكتاتيون الوفاء. هذا يأخذ مكان وضع العلم مثل استجابة هاسريفيد في المثال السابق. ثم نقول إطار الاختبار للانتظار (مع مهلة) لتوقعاتها إلى أن يتم الوفاء بها عن طريق الأسلوب ككتستكيس ويتفوريكسكتاتيونسويثتيميوت: معالج:. إذا تم تنفيذ معالج الإكمال خلال المهلة والمكالمات الوفاء، ثم كل من التوقعات ™ s سيكون قد تم الوفاء بها. إذا لم يكن كذلك، فإن الاختبار سيعيش حزين، وحيدا، ونيففيلد الوجودЂЂ حتى يخرج من النطاق. وعن طريق العيش حزين، وحيدا، وعدم وجود الوجود، أعني أن التوقعات تفشل الاختبار عند توقيت.
إن التوقعات الفاشلة يجب أن لا تشعر بذلك. تذكر أن النتيجة الفاشلة ليست علامة على اختبار سيئ؛ نتيجة غير محددة هي. هذا التوقع يمكن أن يشعر بالفخر كما يعلن الفشل.
مثال هنا باستخدام ككتستكسكتاتيون:
خلق التوقعات مع وصف لجعل النتائج أكثر قابلية للقراءة. في كتلة الإنجاز، استدعاء [توقع الوفاء] لنقول للاختبار أن هذا التوقع قد تم بالفعل الوفاء به. ثم شنق في ويتفوريكسكتاتيونسويثتيميوت: معالج: حتى يتم إرسال الطلب، وصول الاستجابة ويسمى معالج الانتهاء لدينا Ђ or أو مهلة يحدث.
وهذا جيد جدا ™ Object الهدف - C، ولكن يمكننا أيضا أن نفعل ذلك في أبل سو ™ لامعة جديدة سويفت اللغة.
و ذلك Ђ ™ ق ذلك. إيتاس ™ ق فئة سهلة الاستخدام لاختبار رمز غير متزامن.
هل يمكن الحصول على معلومات كافية عن نظام التشغيل يوس 8 و سويفت؟ الانضمام إلينا لدينا بداية دائرة الرقابة الداخلية مع سويفت والمتقدمة دائرة الرقابة الداخلية بوتكامبس.
الوظائف ذات الصلة:
احدث التعليقات.
تطوير التطبيقات.
تدريب فريق.
شركة.
حقوق الطبع والنشر والنسخ. 1998 - 2017 بيج نيرد رانش، ليك. كل الحقوق محفوظة. | سياسة الخصوصية.
جانبورو-سان / روتر.
ماذا تريد ان تفعل؟
علق هيساندوفال 7 يناير 2018.
كانت مشاركة المدونة هذه مقروءة رائعة. حاليا لي وزميل من الألغام يعملون على حل مشابهة جدا لهذا واحد. والفرق الوحيد هو أننا بحاجة إلى إرسال الصور التي التقطت على اي فون. لدينا بالفعل مسار الصورة، ونحن نواجه مشكلة في الحصول على بيانات الصورة وإضافة ذلك إلى طلب آخر. إذا كان لديك أي اقتراحات أو مساعدة هل يمكن أن تعطينا التي من شأنها أن تكون رهيبة!
كولينتا علق مارس 3، 2018.
@ جانبورو-سان اعتقدت أنني ضرب بيديرت مع هذا المنصب، ولكن أهم رمز مفقود! كيف يقوم ListRouter. Upload بإنشاء طلب متعدد الأجزاء؟
فيكتوسفات علق 7 أبريل، 2018.
فوجئت لم ألامو النار لا تدعم التحميل المتعدد كما بنيت، لأنه أمر شائع جدا. شكرا على المشاركة.
&نسخ؛ 2017 جيثب، Inc. شروط الخصوصية تعليمات حالة الأمان.
لا يمكنك تنفيذ هذا الإجراء في الوقت الحالي.
لقد سجلت الدخول باستخدام علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة. لقد سجلت الخروج في علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة.
No comments:
Post a Comment