Протестируйте printf реализацию

Я судил MVP, и это, кажется, работает отлично с формами окон также. Эта книга имеет пример форм окон с шаблоном MVP (демонстрационное приложение платежной ведомости). Приложение не то, что комплекс, но даст Вам общее представление о том, как пойти о создании его.

Гибкие Принципы, Шаблоны и Методы в C#...

можно получить исходный код в РЕДАКТИРОВАНИЕ Исходного кода

:

существует два изменения MVP шаблона (a) Passive представления и (b) наблюдения контроллера

Для сложных сценариев привязки данных я предпочитаю идти с шаблоном контроллера Наблюдения. В наблюдении шаблона контроллера ответственность за привязку данных лежат на представлении. Так, для treeview/datagrid это должно быть в соответствующих представлениях, только просмотреть агностическую логику, должен, шел дальше предъявителю.

я рекомендую взглянуть на следующую платформу MVP MVC# - платформа MVP

не идет именем (это - платформа MVP).

Простое видео MVP winforms Winforms - MVP

пример контакта с MVP выпадающего списка - DropDownList

Простой treeview обязательный пример (бедный обязательный человек). Можно добавить любую treeview определенную логику в BindTree ().

Ниже фрагмент кода.... не протестированный, непосредственно введенный от мысли....

public interface IYourView
{
   void BindTree(Model model);
}

public class YourView : System.Windows.Forms, IYourView
{
   private Presenter presenter;

   public YourView()
   {
      presenter = new YourPresenter(this);
   }

   public override OnLoad()
   {
         presenter.OnLoad();
   }

   public void BindTree(Model model)
   {
       // Binding logic goes here....
   }
}

public class YourPresenter
{
   private IYourView view;

   public YourPresenter(IYourView view)
   { 
       this.view = view;
   }

   public void OnLoad()
   {
       // Get data from service.... or whatever soruce
       Model model = service.GetData(...);
       view.BindTree(model);
   }
}

5
задан 4 September 2009 в 09:46
поделиться

3 ответа

Я думаю закон Постела ( «будь консервативным в том, что ты делаешь, будь либеральным в том, что ты принимаешь от других») применимо и здесь. Не пишите свои тесты так, чтобы они требовали посимвольного сопоставления для того, чтобы реализация printf () работала.

Вместо этого сделайте это на более высоком уровне; проанализировать текст, выводимый с помощью printf () , на ожидаемый тип данных и сравнить со значением этого типа.

Т.е., если вы печатаете «2.25», проанализируйте текст (используя strtod () или эквивалент) и сравните с действительным числом 2,25, а не буквальной текстовой строкой «2,25».

4
ответ дан 14 December 2019 в 04:43
поделиться

Вам следует написать свой собственный набор тестов, охватывающий проблемы, которые вас беспокоят. Очень просто вызвать printf 100 раз с разными входными данными, а на выходе вы получите простой текст, так что легко сравнить с ожидаемым результатом.

1
ответ дан 14 December 2019 в 04:43
поделиться

Я бы порекомендовал протестировать его следующим образом: используйте sprintf (), чтобы создать несколько шаблонов тестирования и сравнить их с вашим «правильным».

Я сделал что-то подобное с помощью fprintf (просто чтобы избежать кеширования в нашей встроенной системе).

Я думаю, что результаты для printf и sprintf не будут отличаться: алгоритм форматирования одинаковый.

0
ответ дан 14 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: