Модульное тестирование для смарт-устройств с использованием фреймворка 2.0 - PullRequest
1 голос
/ 19 января 2010

VSTS 2008 (Visual Studio Team System) поставляется со встроенной функцией модульного тестирования. Мы можем добавить тестовый проект для выполнения модульного тестирования над проектом Smart device. Проблема возникает, когда мой проект для смарт-устройств не использует Framework 3.5, а использует Framework 2.0. Я строго не устанавливать Framework 3.5 в устройстве.

Но это ограничение мешает мне запускать приложение UnitTest, потому что оно использует следующую ссылку:

Microsoft.VisualStudio.SmartDevice.UnitTestFramework.dll

, который требует framework 3.5 в устройстве или эмуляторе, иначе он выдаст исключение. Мне нужно знать, есть ли способ, чтобы я мог выполнить UnitTest над приложением на устройстве в рамках Framework 2.0.

Ответы [ 3 ]

2 голосов
/ 21 января 2010

Я много занимаюсь разработкой Compact Framework, и я бы предложил альтернативу для использования Smart Device Unit Testing, которая также решит вашу проблему.

Измените код, чтобы ваш пользовательский интерфейс был просто представлением. (Т.е. он ничего не делает, кроме как вызывает другие классы.) Затем поместите классы, не относящиеся к пользовательскому интерфейсу, в модульный тест. (Просто нормальные юнит-тесты.)

Visual Studio выдаст предупреждение при первом создании обычного проекта модульного теста, но после этого он будет плавным.

Для этого есть 3 причины:

  1. Speed. Таким образом, выполнение ваших модульных тестов занимает намного меньше времени.
  2. Простота. Как вы уже видели, тестирование и работа модуля интеллектуального устройства занимает немного
  3. Совместимость. Делая это, вы получаете доступ к таким инструментам, как Rhino Mocks.
  4. Вы можете установить цель проекта модульного тестирования на .NET 2.0

Теперь недостаток:

  1. Вы не «действительно» тестируете свой код в среде NETCF.

Хотя недостаток является значительным, юнит-тесты не заменяют «реального» тестирования, которое бы быстро улавливало любые проблемы, которые могут быть упущены из-за этого недостатка. (И действительно, компиляция должна отлавливать большинство проблем.)

0 голосов
/ 21 января 2010

Вы должны что-то настроить неправильно или следовать неправильной процедуре при создании вашего тестового проекта.

Я только что проверил это в Studio 2008, и если сборка, которую вы тестируете, предназначена для версии 2.0, то при создании проекта модульного тестирования он также будет ориентирован на версию 2.0. Вы должны использовать мастер «Создать модульный тест» из контекстного меню для создания проекта Unit Tetst.

0 голосов
/ 19 января 2010

Вы можете установить свой проект модульного тестирования как .Net 3.5, а проект своего умного устройства - .Net 2.0.

Есть ли проблема в этом?

...