Я разрабатывал на 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)