Dol*_*lph 2 java grails groovy junit taglib
这几乎是从IBM的Mastering Grails系列中逐字记录下来的.
DateTagLib.groovy:
class DateTagLib {
def thisYear = {
out << Calendar.getInstance().get(Calendar.YEAR)
}
}
Run Code Online (Sandbox Code Playgroud)
DateTagLibTests.groovy:
class DateTagLibTests extends TagLibUnitTestCase {
def dateTagLib
protected void setUp() {
super.setUp()
dateTagLib = new DateTagLib()
}
void testThisYear() {
String expected = Calendar.getInstance().get(Calendar.YEAR)
assertEquals("years do NOT match", expected, dateTagLib.thisYear())
}
protected void tearDown() {
super.tearDown()
}
}
Run Code Online (Sandbox Code Playgroud)
grails test-app DateTagLib 输出:
-------------------------------------------------------
Running 1 unit test...
Running test DateTagLibTests...
testThisYear...FAILED
Tests Completed in 359ms ...
-------------------------------------------------------
Tests passed: 0
Tests failed: 1
-------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我尝试匹配类型(int/long/String),但我仍然撞在墙上.
此测试也失败了:
void testThisYear() {
long expected = Calendar.getInstance().get(Calendar.YEAR)
assertEquals("years do NOT match", expected, (long) dateTagLib.thisYear())
}
Run Code Online (Sandbox Code Playgroud)
请尝试以下方法
class DateTagLibTests extends TagLibUnitTestCase {
void testThisYear() {
String expected = Calendar.getInstance().get(Calendar.YEAR)
tagLib.thisYear()
assertEquals("years do NOT match", expected, tagLib.out)
}
}
Run Code Online (Sandbox Code Playgroud)
您的原始代码有2个问题:
DateTagLib明确地实例化.它已通过名为的测试类的属性提供tagLibthisYear它不会返回年份值,而是将其写入out.在测试中,您可以访问写入输出的内容tagLib.out| 归档时间: |
|
| 查看次数: |
382 次 |
| 最近记录: |