سؤال

لقد تطورت في Java في الماضي ، والآن أحاول تعلم Grails/Groovy باستخدام هذا البرنامج التعليمي المؤرخ قليلاً.

import grails.test.*

class DateTagLibTests extends TagLibUnitTestCase {

    def dateTagLib

    protected void setUp() {
        super.setUp()
        dateTagLib = new DateTagLib()
    }

    protected void tearDown() {
        super.tearDown()
    }

    void testThisYear() {
        String expected = Calendar.getInstance().get(Calendar.YEAR) 

        // NOTE: This statement fails
        assertEquals("the years dont match and I dont know why.", expected, dateTagLib.thisYear())

    }
}

datetaglibtests.groovy
(ملحوظة: هذا taglibunittestcase مخصص لـ Grails 1.2.1 وليس الإصدار المستخدم في درس تعليمي)

لسبب ما فشل الاختبار أعلاه مع:

المتوقع: <2010> ولكن كان: <2010>

لقد حاولت استبدال الاختبار أعلاه مع الإصدار البديل التالي من الاختبار ، ويمر الاختبار على ما يرام:

void testThisYear() {
    String expected = Calendar.getInstance().get(Calendar.YEAR)
    String actual = dateTagLib.thisYear()

    // NOTE: The following two assertions work:
    assertEquals("the years don\'t match", expected, actual)
    assertTrue("the years don\'t match", expected.equals(actual))
}

هذان الإصداران من الاختبار هما نفس الشيء بشكل صحيح؟

ما لم يكن هناك شيء جديد في Grails 1.2.1 أو Groovy لا أفهمه. يجب أن تكون من نفس النوع لأن القيم هي القيمة التي يتم إرجاعها بواسطة Calendar.getInstance (). Get (Calendar.year)

هل كانت مفيدة؟

المحلول

يجب ألا يكون الكائن الذي تم إرجاعه من datetaglib.Thisyear () سلسلة.

محاولة

  assertEquals("the years dont match and I dont know why.", expected, dateTagLib.thisYear().toString())

في مثال العمل الخاص بك ، يتم تحويل Groovy .Thisyear () إلى سلسلة لك.

اطبع datetaglib.Thisyear (). الفئة للتأكد.

في صحتك

لي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top