【问题标题】:Doing TDD Silverlight 4 RC using Visual Studio 2010 RC使用 Visual Studio 2010 RC 进行 TDD Silverlight 4 RC
【发布时间】:2010-03-30 03:28:34
【问题描述】:

[编辑]根据反馈,是的,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 项目的项目。我已经能够让它工作,但没有达到应有的干净程度。

我可以创建一个 Empty 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 代码。我还在测试项目对计算器 Silverlight 类库程序集的引用中收到警告标记。

第二个问题:如果这只是 VS2010 RC 中的一个错误,或者 Silverlight 类库 TDD 并不真正受支持。 我还没有创建 Silverlight UI 项目或更改并构建或调试设置,所以我不知道托管 silverlight DLL 的是什么。

最后,我需要编写的一些 Silverlight 类库将提供需要提升的浏览器外权限的功能。基于上述情况,看起来我可以针对常规 Silverlight 4.0 类库使用 TDD 测试项目,但我不知道如何在不创建安装的 UI 组件的情况下对提升的 OOB 功能进行 TDD。 UI 部分对于库开发并不是真正需要的,并且妨碍了我真正想要的 TDD。我知道我可以(并且将会)模拟其中的一些功能,但在某些时候我也需要在我的测试中使用真实的东西。 第三个​​问题:对于需要 OOB 提升权限的 TDD Silverlight 4.0 类库项目有何想法?

谢谢!

【问题讨论】:

  • 无法回答您的确切问题,但 MSTest 和 Visual Studio MSTest 运行器非常奇怪。使用另一个测试框架(NUnit、MbUnit、XUnit.net)和测试运行器(TestDriven.Net、Gallio、Coderush、Resharper)可能会让你更幸运

标签: silverlight unit-testing visual-studio-2010 tdd silverlight-4.0


【解决方案1】:

SL4 肯定支持 TDD,我建议查看 SL4 的 MEF 或 CAL 的源代码

【讨论】:

  • 嗨 vittore,是的,它似乎支持它,尽管在第一次创建测试时有几条奇怪的消息说测试无法针对 Silverlight - 问题似乎消失了 - 将其归结为 RC 错误我猜测。我认为我真正悬而未决的问题是如何 TDD 一个使用提升的 OOB 功能的独立库。想法?
  • 如果测试库以 SL 为目标,则它不适用于不适用于 SL 的东西。抱歉,OOB 代表什么?
猜你喜欢
  • 2011-01-27
  • 1970-01-01
  • 2017-04-11
  • 2011-02-01
  • 2012-08-15
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 2011-01-18
相关资源
最近更新 更多