1. 若測試 PersonDaoTest 時假資料是用
person = (Person) populate(person);
的方式且是用 PersonDaoTest.properties 做假資料,因 test-compile 會漏掉將 PersonDaoTest.properties 複製到 classpath 中,以致於測試 PersonDaoTest 會失敗,因為無法取得假資料。
解法 : 在 pom.xml 上補上複製 properties 的敘述
line 293
<testResources>
<!-- copy test property file in test class path -->
<testResource>
<directory>src/test/java</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</testResource>
這樣就可以將 PersonDaoTest.properties 複製到 test-classes 中了
2. 這個 bug 較嚴重
在 BaseDaoTestCase 中,line 74
BeanUtils.copyProperties(map, obj);
跑測試的時候發現假資料無法複製到 obj (person instance) 中,後來查 API 才發現應該是
BeanUtils.copyProperties(obj, map);
才對,因為 API 為
copyProperties(Object dest, Object orig)
Copy property values from the origin bean to the destination bean for all cases where the property names are the same.
這個 bug 對於使用 populate 的人而言算滿嚴重的,可能會讓試用 appfuse 的人卻步,所以在此提供大家做參考
No comments:
Post a Comment