2013-10-29 39 views
-3
public List<TempProject> GetActiveProjects() 
{ 
    foreach (Project project in _applicationObject.DTE.Solution.Projects) 
    { 
     if (project.FullName.EndsWith(".csproj")) 
      projects.Add(new TempProject(project)); 
    } 
    return projects; 
} 
+5

为此编写测试有什么具体问题? –

回答

0
  1. 为您正在测试的课程提供_applicationObject的模拟实例。这将允许您设置不同的项目设置(谷歌dependency inversion,嘲笑,Moq)。
  2. 编写测试,验证在解决方案中没有项目时返回空列表。
  3. 编写测试,验证在解决方案中没有C#项目时返回空列表。
  4. 编写测试,验证是否添加了所有C#项目。

顺便说一句,考虑取决于解决方案对象而不是应用程序对象,如果你只需要从解决方案中获取数据。这将让您轻松模拟项目设置,避免train wreck获取项目时:

foreach (Project project in _solution.Projects) 
1
  1. 打开Visual Studio
  2. 创建一个新的库项目(假设C#)
  3. 添加适当引用的单元测试框架(从标签看,你似乎想要NUnit - 最简单的方法是到pull it from NuGet)。
  4. 添加一个类以保存OP中代码的单元测试。
  5. [TestFixture]属性修饰测试类。
  6. 添加一个新的公共方法,该方法返回void且不带参数。这将是你的测试方法。
  7. [Test]属性修饰测试方法。
  8. 将单元测试写入测试方法的主体中。
  9. 重复4.直到你有足够的单元测试。
相关问题