我有一个 asp.net 的 mvc4 应用程序,其中我有这个类
public class Arbre
{
public int id_resp = -1;
Admin notre_admin = new Admin();
List<Task> _la_liste = new List<Task>();
public Arbre(int id)
{
id_resp = id;
}
public List<Task> GetTasksOfExpert(int id_user) {
List<int> liste = notre_admin.GetTasksOfExpert(id_user);
List<Task> liste_finale = new List<Task>();
for (int i = 0; i < liste.Count; i++) {
liste_finale.Add(notre_admin.GetTaskListByAffaire(null).Find(x => x.Id_tache == liste[i]));
}
return liste_finale;
}
public List<Task> GetTasksOfChef(int id_user)
{
List<int> liste = notre_admin.GetTasksOfChef(id_user);
List<Task> liste_finale = new List<Task>();
for (int i = 0; i < liste.Count; i++)
{
liste_finale.Add(notre_admin.GetTaskListByAffaire(null).Find(x => x.Id_tache == liste[i]));
}
return liste_finale;
}
}
我想添加一个测试,帮助我知道每种方法的大致时间,以便优化我的代码。
- 我该怎么做?
- 单元测试可以做到这一点吗?
有许多商业产品可以让你分析你的代码(RedGate的Ants Profiler是一个跃入脑海的产品)。正如Marcom提到的,MiniProfiler非常好(它是免费的,非常易于设置和使用)。
另一个更复杂的替代方法是调查 AOP 并围绕您的方法实现允许您记录持续时间的功能。我使用Unity的AOP功能来实现类似的东西(与Log4Net结合使用)。
你可以为此使用一种形式的单元测试,但这更像是一个集成测试而不是单元测试(例如,在你的集成测试中,你可以设置一个计时器并测量方法执行持续时间)。集成测试的运行速度可能很慢,您不一定能够从生产系统获取性能指标。
有许多现成的工具可以帮助您实现这一目标。我最喜欢的一个是迷你剖析器
我会试一试,看看它是否适合您的需求。