سؤال

كيف أركض حالة اختبارمن IDE؟

لقد قمت بإنشاء مشروع جديد ، مع شكل واحد ، بسيط:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

end.

الآن سأضيف حالة اختبار للتحقق من ذلك الضغط Button1 يفعل ما ينبغي:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses
    TestFramework;

type
  TForm1Tests = class(TTestCase)
  private
        f: TForm1;
  protected
     procedure SetUp; override;
     procedure TearDown; override;
  published
     procedure TestButton1Click;
  end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    //todo
end;

{ TForm1Tests }

procedure TForm1Tests.SetUp;
begin
  inherited;

    f := TForm1.Create(nil);
end;

procedure TForm1Tests.TearDown;
begin
    f.Free;
  inherited;
end;

procedure TForm1Tests.TestButton1Click;
begin
    f.Button1Click(nil);
    Self.CheckEqualsString('Hello, world!', f.Caption);
end;

end.

بالنظر إلى ما قمت به (رمز الاختبار في مشروع واجهة المستخدم الرسومية) ، كيف يمكنني الآن تشغيل مجموعة من الاختبارات؟ إذا دفعت F9 ثم يظهر النموذج ببساطة:

alt text

من الناحية المثالية ، سيكون هناك زر ، أو خيار قائمة ، في قول IDE تشغيل اختبارات Dunit:

alt text

هل أعيش في عالم الأحلام؟ أرض خيالية تعيش في منزل اللثة على Lollipop Lane؟

هل كانت مفيدة؟

المحلول

وأنا أتفق مع Uwe Raabe ، ولكن في بعض الأحيان قد يكون من المفيد أن يكون لديك رابط "مخفي" داخل تطبيقك لتشغيل Dunit GUI. أنا أستعمل:

TGUITestRunner.runRegisteredTests;

اتصل بهذا من الزر الخاص بك في Dunit GUI سيتم فتحه لك لتشغيل إخراج الاختبار يدويًا وعرض الاختبار.


على سبيل المثال ، إذا قمت بإلقاء مجموعة مفاتيح خاصة عند فتح البرنامج الخاص "لوحة التحكم", ، تحصل على بعض الإدخالات المتقدمة:

enter image description here

نصائح أخرى

إضافة اختبار إلى المشروع الرئيسي ليس هو الطريق للذهاب. يجب عليك إنشاء مشروع TestProject منفصل (يمكنك الحصول عليه في نفس ProjectGroup مثل المشروع الرئيسي) ، وإضافة testcase وتشغيله.

أنا أحب فكرة وجود ملف 'Run DUnit tests' أمر في IDE.

يمكن تنفيذها عن طريق التحقق من مشروع Dunit في نفس المجلد ، وله نفس اسم المشروع الحالي:

  • Project1.dpr -> البرنامج قيد الاختبار
  • project1.tests.dpr => تطبيق اختبار Dunit

في هذه الحالة ، يجب على IDE تمكين الأمر Run Dunit Tests.

  • بعد تنفيذ الاختبارات ، يجب عرض قائمة بجميع الاختبارات الفاشلة والتي تسمح بالقفز إلى سطر المصدر حيث الاختبار باءت بالفشل.

  • إذا تسببت الاختبارات في تسرب الذاكرة ، فيجب عرض قائمة بجميع التسريبات مما يسمح بالقفز إلى سطر المصدر حيث تم إنشاء تسرب الذاكرة

(يمكن تكوين Dunit للكشف عن تسرب الذاكرة وفشل الاختبارات عند العثور على واحد)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top