我一直在搜索能够在Windows Phone 7应用程序开发中测试异步函数调用的Unit Test框架。是的,单位驱动是我眼中突然出现的一个。但是,该框架不像NUnit那样对开发人员友好(遗憾的是它无法测试异步方法)。在互联网上,人们一直在使用UD进行单元测试。有人可以投入并提供一些建议吗?
我的具体问题是:
1)我在哪里包含以下初始化代码?
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new UnitDriven.TestEngine(Assembly.GetExecutingAssembly());
}
2)如何为UD编写测试用例?使用NUnit,我可以编写测试用例和我的应用程序,NUnit加载我的dll并执行测试。我试图把我的应用程序放进去,但Visual Studio 2010快递总是抱怨它找不到符号GetContext()
UnitTestContext context = GetContext();
3)UD有三个dll。 UnitDrivenLight,UnitDrivenPhone,UnitDrivenNet ......那么,UnitDrivenLight和UnitDrivenPhone的角色是什么?此刻非常混乱。
由于
西莫
答案 0 :(得分:1)
我自己没有使用过UnitDriven,但是我已经成功使用了Windows Phone Toolkit(支持异步测试)附带的测试框架。
事实上,我已经创建了modified version,它增加了命令行支持。它在NuGet中为wp7-ci
(自定义MSBuild任务使手动安装变得复杂)。
答案 1 :(得分:0)
最后,根据Szalay的提示,我转而使用Microsoft的sliverlight测试框架进行异步测试,这是示例测试类:
namespace TestApp
{
using System.Threading;
using Microsoft.Silverlight.Testing;
using Microsoft.VisualStudio.TestTools.UnitTesting;
/// <summary>
/// An example test class
/// </summary>
[TestClass]
public class ExampleTestClass : SilverlightTest
{
/// <summary>
/// Sample asynchronous test
/// </summary>
[TestMethod, Tag("Asynchronous Test"), Asynchronous]
public void SampleAsynchronousTest()
{
ThreadPool.QueueUserWorkItem(o =>
{
for (int j = 0; j < 10000; j++){}
CheckResult(10);
});
}
/// <summary>
/// Check result
/// </summary>
/// <param name="variable">result</param>
private void CheckResult(int variable)
{
Assert.IsTrue(variable == 10);
EnqueueTestComplete();
}
}
}