Управляемое данными тестирование DUnit

Похоже, вы не поместили pygame. перед некоторыми из переменных здесь:

if event.key == K_SPACE: # Does not have pygame prefix
    crazy = 1
if event.key == K_DOWN: # Does not have pygame prefix
    dir = 's'
    y_option -= 1
    hotkey  = 2
if event.key == pygame.K_w: # Does have pygame prefix
    dir = 'w'
    y_option += 1
    hotkey = 1
if event.key == K_LEFT: # Does not have pygame prefix
    dir = 'a'

if event.key == K_RIGHT: # Does not have pygame prefix
    dir = 'd'

Добавьте pygame. к ним, и оно должно обнаружить после этого. Странно, как это не вытянуло NameError исключение во время работы.

11
задан dan-gph 1 April 2009 в 11:39
поделиться

2 ответа

program UnitTest1;

{$IFDEF CONSOLE_TESTRUNNER}
{$APPTYPE CONSOLE}
{$ENDIF}

uses
  Forms, Classes, SysUtils,
  TestFramework,
  GUITestRunner,
  TextTestRunner;

{$R *.RES}

type
  TIntTestCase = class(TTestCase)
  private
    FValue: Integer;
  public
    constructor Create(AValue: Integer); reintroduce;
    function GetName: string; override;
  published
    procedure Run;
  end;

{ TIntTestCase }

constructor TIntTestCase.Create(AValue: Integer);
begin
  inherited Create('Run');
  FValue := AValue;
end;

function TIntTestCase.GetName: string;
begin
  Result := Format('Run_%.3d', [FValue]);
end;

procedure TIntTestCase.Run;
begin
  Check(FValue mod 2 = 0, Format('%d is not an even value', [FValue]));
end;

procedure RegisterTests;
const
  TestCount = 10;
  ValueHigh = 1000;
var
  I: Integer;
begin
  Randomize;
  for I := 0 to TestCount - 1 do
    RegisterTest(TIntTestCase.Create(Random(ValueHigh) + 1));
end;

begin
  Application.Initialize;
  RegisterTests;
  if IsConsole then
    TextTestRunner.RunRegisteredTests
  else
    GUITestRunner.RunRegisteredTests;
end.
18
ответ дан 3 December 2019 в 05:59
поделиться

Я сказал бы, что Вы в основном хотите иметь единственную "супертестовую" функцию, которая затем называет другие тесты, один для каждого файла данных. Это - то, что мы делаем с одним из наших тестов DUnit. Вы просто загружаете каждый доступный файл в свою очередь в цикле и запускаете тест с Проверкой как соответствующий.

Альтернатива, которую мы также используем в том же проекте протестировать заключительное приложение и его загрузку данных и анализ, должна использовать что-то как FinalBuilder для цикличного выполнения на приложении (по-видимому, Вы могли циклично выполниться на приложении DUnit также и использовать параметр) со всевозможными файлами данных. Приложение затем выполняет, делает анализ, затем выходит после сохранения. Другое приложение затем сравнивает получающиеся данные с идеальными данными и сообщает об отказе при необходимости.

2
ответ дан 3 December 2019 в 05:59
поделиться
Другие вопросы по тегам:

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