0

我使用 WP7Test nuget 包来启动我的测试。我有两个测试,用于登录和支付操作。我需要启动登录测试并保存会话。然后我需要启动付款测试。据我所知,默认情况下测试以随机顺序运行。

有什么办法可以强制他们按照我的顺序运行?

4

2 回答 2

1

我不相信。根据设计,UnitTest 旨在并行运行(或在您的情况下随机运行)。这是因为系统想要对每个 UT 进行沙箱处理,以防止您尝试做的事情(即其他单元测试影响系统状态)。

我的建议是有一个帮助“登录”功能,您的登录和支付 UT 都可以调用。这基本上应该是您在登录测试中已有的逻辑,减去断言调用。

于 2013-06-24T16:00:17.797 回答
0

不幸的是 WP7Test (如果我没记错的话)实际上只是为了进行单元测试。

单元测试旨在设计绝对最小的代码片段,而不是读取或写入外部源的任何内容。(在您的案例会话中)有许多类型的测试适合这种情况,功能和集成测试会浮现在脑海中......

您可以按顺序在一个测试中编写涵盖两个功能的测试,但这又不是真正的单元测试...

对于快速集成测试,您可以简单地执行此操作...(人们会对此感到畏缩,但它会为您服务)

   [TestMethod]
   private void FunctionalityBeingTested_ConditionBeingTested_ExpectedOutput()
   {
        //input used by your first method
        //Method that writes to your session
        //input used by your second method
        var session = //Method that reads from your session
        //whatever assertions are appropriate for your expected results...
        //what you expect your results to be...
        Assert.IsNotNull(session);
        Assert.IsEqual(expected, session);
    }

再一次,这不是单元测试,而是取决于范围的集成或功能测试。您在实现中测试的不止一个步骤,您应该对所有可能的东西进行单元测试,但只要您处理超出应用程序直接控制的事情,它就不再是单元测试。

如果您还没有,我强烈建议您研究依赖注入来测试 Windows Phone 应用程序。我自己是一名 Windows Phone 开发人员,可以说正确的测试就像没有它就拔牙。(接口、假货、起订量等都是很棒的测试工具)

于 2013-06-25T20:22:27.110 回答