例如,我在DAO中有以下方法:
//this is old method. gets data from sql server
public IdentifierBean getHeadIdentifiers_old(String head){
HashMap parmMap = new HashMap();
parmMap.put("head", head);
List result = getSqlMapClientTemplate().queryForList("Income.getIdentifiers", parmMap);
return (IdentifierBean)result.get(0);
}
//this is new method. gets data from Oracle
public IdentifierBean getHeadIdentifiers(String head){
HashMap parmMap = new HashMap();
parmMap.put("head", head);
getSqlMapClientTemplate().queryForObject("Income.getIdentifiers", parmMap);
return (IdentifierBean)((List)parmMap.get("Result0")).get(0);
}
现在我想编写一个 Junit 测试方法,该方法首先调用
getHeadIdentifiers_old
,然后调用 getHeadIdentifiers
,并比较返回的对象(必须在 IdentifierBean
中重写 equals 和 hash)。只有当两个对象相同时,测试才会通过。在测试方法中,我将为这两个方法提供一个参数(在本例中为 head)...现在手动完成。是的,从前端传递的参数可能不同,并且 SP 可能无法返回这些参数的确切结果。但我认为拥有这些测试用例将使我们感到放心,它们返回相同的数据...
我的问题是:
- 这是一个好方法吗?
- 我将有多个 DAO。我是否应在 DAO 内部编写测试方法,还是对于每个 DAO 我都应该有一个单独的 JUnit 测试类?
- (可能是 n00b 问题) 所有测试用例都会自动运行吗?我不想去前端点击一堆东西,以触发对 DAO 的调用。
- 当运行测试时,我会发现哪些方法失败了吗?对于失败的方法,它会告诉我哪个测试方法失败了吗?
- 最后,有什么好的起点吗?任何教程、文章都可以展示如何使用 Junit。