私は以前にJavaを使用しましたが、Eclipseで何でもできました。さて、Delphiを使用してインスタントメッセージングソフトウェアを変更したいので、再構築と単体テストシステムをDelphiに移動する方法を疑問に思います。この本は、既存のコードにユニットテストを追加すると、コードの理解を深め、これが私がやりたいことではないことです。そのため、このようなアジャイルプラットフォームを構築するために、Delphi2005とDunitで少し試み、以下の結果を記録して共有しました。
1。Delphi2005をダウンロードします
Borlandは、建築家とエンタープライズバージョンの空の価格を考えると、中国でプロのバージョンを販売していないため、個人用のインターネットからDバージョンのみをダウンロードできます。 Delphi2005のサイズは比較的大きく、update1にはCDも必要なため、2CDバージョンをダウンロードするためにBTを使用することをお勧めします。シードアドレスは次のとおりです。
http://www.delphhifans.com/softview/821.html
2。Delphi2005のSP1をダウンロードします
このパッチを適用した後、より速くなる可能性がありますが、パッチのインストールは遅く、CDを使用する必要があると言われています。ダウンロードアドレスは次のとおりです。
http://www.delphhifans.com/softview/970.html
3。Dunitをダウンロードします
https://sourceforge.net/projects/dunit/
4。Delphi2005+SP1をインストールします
keygenにレジスタがあり、インストールするときは、Delphiの.netとWin32バージョンを同時にインストールする必要がありますが、C#Builderは問題ではありません。 Win32バージョンのみをインストールする場合、再構成関数は利用できないためです(これは、リファクタリング時に.NETの例外ウィンドウとして現れます)。
5。Delphi2005を簡素化します
.NETバージョンは前のステップで同時にインストールされたため、Delphiは開始時に非常に遅くなりました。これは、レジストリを変更し、一部のIDEパッケージを削除することで実現できます。特定の方法は、Delphiショートカットターゲットの後にパラメーター-RXXXを追加することです。つまり、bds.exe -rxxxです。このXXXは指定するためのものであり、その後、hkey_current_user/software/borland/xxx(これはxxxを選択した名前)/3.0/noknow ide ideパッケージにそれらのいまいましいパッケージを見つけることができます。再構築には役に立たないため、インターネット上の他のWin32精製分子のように、あまりきれいに削除することはできません。何度も実験した後に得た比較的単純なリストは次のとおりです
「$(bds)// bin // vclmenudesigner90.bpl "="(untitled) "
"$(bds)// bin // win32debugproide90.bpl" = "(untitled)"
「$(bds)// bin // htmide90.bpl "=" htmlデザイナーパッケージ ""
"$(bds)// bin // iteidew3290.bpl" = "win32 for win32 for borland統合翻訳環境"
"$(bds)// bin // srcmanide90.bpl" = "(untitled)"
"$(bds)// bin // todoide90.bpl" = "borland todo"
「$(bds)// bin // htmlhelp290.bpl "=" borland htmlhelp Viewer "
"$(bds)// bin // idefilefilters90.bpl" = "ide filefilters"
"$(bds)// bin // startpageide90.bpl" = "borland start page ide package" "
「$(bds)// bin // refactoride90.bpl "=" Borland Core Refactoring Package」
「$(bds)// bin // dbkdebugide90.bpl "="(untitled) "
「$(bds)// bin // exceptiondiag90.bpl "="(untitled) "
"$(bds)// bin // deployide90.bpl" = "Deployment Manager"
「$(bds)// bin // plugview90.bpl "=" pluggable Tree Viewパッケージ ""
「$(bds)// bin // coreproide90.bpl "=" core ide proパッケージ ""
"$(bds)// bin // idetools90.bpl" = "ビルドツール"
"$(bds)// bin // unittestide90.bpl" = "(untitled)"
「$(bds)// bin // hotionideide90.bpl "="(untitled) "
"$(bds)// bin // htmltidy90.bpl" = "html tidy formatter"
"$(bds)// bin // htmlfmt90.bpl" = "html internal formatter"
"$(bds)// bin // mlcc90.bpl" = "マークアップ言語コード修了パッケージ" ""
「$(bds)// bin // delphivclide90.bpl "=" delphi vclデザイナーIDEパッケージ」
「$(bds)// bin // delphicoreproide90.bpl "="(untitled) "
「$(bds)// bin // win32debugide90.bpl "="(untitled) "
"$(bds)// bin // htmlide90.bpl" = "(untitled)"
「$(bds)// bin // delphide90.bpl "=" delphi win32 ide personality "
"$(bds)// bin // mtspro90.bpl" = "(untitled)"
"$(bds)// bin // mtsent90.bpl" = "(untitled)"
"$(bds)// bin // iteidenet90.bpl" = "borland統合翻訳環境.net"
「$(bds)// bin // netimportwiz90.bpl "="(untitled) "
"$(bds)// bin // dataexplorer90.bpl" = "(untitled)"
まだ開始するのは少し遅いですが、最終的にそれを耐えることができます。
6. Dunitをコンパイルしてインストールします
知っている方法を使用して、DunitをDCUにコンパイルし、指定したディレクトリに入れます。このディレクトリをDelphiツールのライブラリパス - >環境オプション - > Delphiオプション - > Library-Win32に追加します。
Dunit.exeもコンパイルします
7.プロジェクトを確立します
私がお勧めする方法は、Delphiプログラムを作成するときに、特に2つのプロジェクト、1つの通常のVCLプロジェクト、もう1つのDLLプロジェクトを開くために、インターフェイスと背景を分離することです。いいえ、いいえ、DLLでコードを共有させるつもりはありません。このDLLプロジェクトには、すべてのバックグラウンドコンテンツであるファイルと、バックグラウンドでのテストが含まれています。生成されたDLLはDunitに使用され、Dunitはテストを読み取り、実行できます。実際、GUI部品のプロジェクトには、すべてのファイルが含まれています。つまり、元の単一プロジェクトに基づいてテストするためにDLLプロジェクトを追加することをお勧めします。
このプロジェクトは、GUI、コア、テストコアの3つの部分に分かれています。 Project OneにはGUI+Coreが含まれており、Project TwoにはCore+TestCoreが含まれています。プロジェクト1の出力はWin32Exeプログラムです。プロジェクトの2番目の出力は、Win32DLLプログラムです。
その後、これら2つのプロジェクトをプロジェクトグループに入れることができます。
8。テストを書き込みます
プロジェクト1は、DEPHIプログラムを書くことと変わりません。テストはエンジニアリングNo. 2で書かれており、エンジニアリングNo. 2 Coreの名前を呼び出します。コアに基本的なテストを追加して、1+1が2に等しいかどうかを確認しましょう。
テストケースを作成します
ユニットテストベース;
インタフェース
用途
TestFramework;
タイプ
tbasic = class
公共
関数add(a、b:整数):整数;
終わり;
ttestbasic = class(ttestcase)
プライベート
fbasic:tbasic;
公共
手順のセットアップ。
手順の分解;
公開
手順testAdd;
終わり;
実装
関数tbasic.add(a、b:整数):整数;
始める
結果:= a + b;
終わり;
手順ttestbasic.setup;
始める
fbasic:= tbasic.create;
終わり;
手順ttestbasic.teardown;
始める
fbasic.free;
終わり;
手順ttestbasic.testadd;
始める
Checkequals(2、fbasic.add(1、1));
終わり;
初期化
RegisterTest( ''、ttestbasic.suite);
終わり。
core.bdsproj(kao、なんて奇妙な接尾辞)を変更する
変更を開始します
輸出
RegisteredTests name 'test';
終わり。
[使用]セクションにtestframeworkを追加します。
Dunitはこのエクスポート機能を使用して、DLLで登録したテストケースを見つけます。
9。ダニットを実行します
ダニットをツールメニューに追加すると、もっと便利です。パラメーターを記入するのが難しいというだけです。私は内部のマクロを使用しませんでした、私はただ絶対的なパスを埋めました。私のような絶対的なパスを埋める場合は、[ツール]メニューから[ダニット]を選択すると、[実行]をクリックすると、緑色のライトが表示されます。
ツールメニューにDunitを追加していない場合は、ファイル - > Load Testのファイル選択ウィンドウから、Core Project core.dllからコンパイルされたDLLを見つける必要があります。
———
これまでのところ、リファクタリング機能と単体テストの両方があります。残っているのは、既存のコードにテストを追加し、ゆっくりとリファクタリングすることです。