Как написать модульные тесты, используя Unit Driven для разработки приложений для Windows Phone 7? - PullRequest
1 голос
/ 18 июля 2011

Я искал платформу Unit Test, которая способна тестировать асинхронные функциональные вызовы при разработке приложений для Windows Phone 7. Да, единым целым было то, что появилось у меня на глазах. Однако эта среда не была дружественной для разработчиков, как 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 Express всегда жалуются, что он не может найти символ GetContext ()

UnitTestContext context = GetContext();

3) Было три dll с UD. UnitDrivenLight, UnitDrivenPhone, UnitDrivenNet ... Итак, каковы роли UnitDrivenLight и UnitDrivenPhone? Очень запутанно в данный момент.

Спасибо

Симо

Ответы [ 2 ]

1 голос
/ 18 июля 2011

Я сам не использовал UnitDriven, но у меня был успех с тестовой средой, которая поставляется с Windows Phone Toolkit (который поддерживает асинхронные тесты).

На самом деле, я создал измененная версия , которая добавляет поддержку командной строки.Это в NuGet как wp7-ci (пользовательская задача MSBuild усложняет установку вручную).

0 голосов
/ 03 ноября 2011

В конце, с подсказками Сзалая, я перешел на использование тестового фреймворка Microsoft для асинхронных тестов, вот пример теста:

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();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...