[编辑] 根据反馈是,VS2010似乎支持SL4库TDD,尽管在第一次创建测试时有一些奇怪的消息,表示测试无法针对Silverlight - 问题似乎消失了 - 我认为它可以归结为RC错误。我认为我现在真正的问题是如何TDD使用提升的OOB功能的独立库。 UI部件并不是库开发真正需要的,并且妨碍了我实际想要的TDD。我知道我可以(并且会)模拟一些功能,但在某些时候我也需要在我的测试中使用真实的东西。想要什么?
[原始问题] 首先,我很高兴在VS2010中看到更好的TDD支持。支持从我的测试生成代码存根是可行的 - 不如更成熟的TDD插件好,但是一个良好的开端。
我正在寻找一些最佳的Silverlight 4.0 TDD实践。 第一个问题:任何人都有链接,建议? 我知道新的Silverlight单元测试功能要好得多(Jeff Wilcox's Mix Presentation)。我现在关注的是使用TDD开发纯Silverlight 4.0类库项目 - 没有Silverlight UI项目的项目。我已经能够使它工作,但不是应该干净利落。
我可以创建一个空VS项目。
添加Silverlight 4类库项目。
添加一个TestProject(不是一个Silverlight单元测试项目,而是一个普通的测试项目)。
在Test Project中添加一个简单的测试,例如:
namespace Calculator.Test
{
[TestClass]
public class CalculatorTests
{
[TestMethod]
public void CalulatorAddTest() {
Calc c = new Calc();
int expected = 10;
int actual = c.Add(6, 4);
Assert.AreEqual<int>(expected, actual);
}
}
}
使用新的Generate Type and Method from Test功能,它将在Silverlight项目中生成以下代码:
namespace Calculator
{
public class Calc
{
public int Add(int p, int p_2) {
throw new NotImplementedException();
}
}
}
当我第一次运行测试时,它说目标程序集是Silverlight并且无法运行测试 - 不是确切的文本,而是相同的一般想法。
当我将实现更改为:
时namespace Calculator
{
public class Calc
{
public int Add(int p, int p_2) {
return p + p_2;
}
}
}
并重新运行测试,它运行正常,测试变为绿色。它也适用于我之后生成的所有其他TDD代码。我还在Test Project中对Calculator Silverlight类库程序集的引用中得到警告标记。
第二个问题:如果这只是VS2010 RC中的一个错误或Silverlight类库TDD不是真的支持,那么任何评论想法。 我还没有创建Silverlight UI项目或者更改并构建或调试设置,所以我不知道什么是托管silverlight DLL。
最后,我需要编写的一些Silverlight类库将提供需要提升的Out-Of-Browser权限的功能。基于上面的内容,看起来我可以对常规的Silverlight 4.0类库使用TDD测试项目,但我不知道如何在不创建安装的UI组件的情况下TDD升级的OOB功能。 UI部件并不是库开发真正需要的,并且妨碍了我实际想要的TDD。我知道我可以(并且会)模拟一些功能,但在某些时候我也需要在我的测试中使用真实的东西。 第三个问题:如何对需要OOB提升权限的TDD Silverlight 4.0类库项目提出任何想法?
谢谢!
答案 0 :(得分:0)
TDD肯定支持SL4,我建议查看MEF的源代码或SL4的CAL