私たちの何人かは、まだ単体テストが受け入れられていないプログラミング環境に「住んでいます」。開始するには、明らかな最初のステップは、単体テスト用の適切なフレームワークを実装しようとすることです。xUnit が「標準」であると思います。
では、新しいプログラミング言語で xUnit を実装するための適切な出発点は何でしょうか?
ところで、人々が尋ねているので: 私のターゲット環境は Visual Dataflex です。
私たちの何人かは、まだ単体テストが受け入れられていないプログラミング環境に「住んでいます」。開始するには、明らかな最初のステップは、単体テスト用の適切なフレームワークを実装しようとすることです。xUnit が「標準」であると思います。
では、新しいプログラミング言語で xUnit を実装するための適切な出発点は何でしょうか?
ところで、人々が尋ねているので: 私のターゲット環境は Visual Dataflex です。
これが単体テストの作成を開始するのを妨げている場合は、テストフレームワークなしで開始できます。
Cスタイル言語の例:
void Main()
{
var algorithmToTest = MyUniversalQuestionSolver();
var question = Answer to { Life, Universe && Everything };
var actual = algorithmToTest(question);
var expected = 42;
if (actual != expected) Error();
// ... add a bunch of tests
}
COBOLスタイルの言語の例:
MAIN.
COMPUTE EXPECTED_ANSWER = 42
SOLVE ANSWER_TO_EVERYTHING GIVING ACTUAL_ANSWER
SUBTRACT ACTUAL_ANSWER FROM EXPECTED_ANSWER GIVING DIFFERENCE
IF DIFFERENCE NOT.EQ 0 THEN
DISPLAY "ERROR!"
END-IF
* ... add a bunch of tests
STOP RUN
コードの変更(および場合によってはコンパイル)が終了したら、Mainを実行します。誰かがあなたのリポジトリにコードを送信するときはいつでも、サーバー上でmainを実行してください。
夢中になったら、フレームワークをもっと探すか、メインから独自のフレームワークまでのビットの一部を除外できるかどうかを確認してください。
どの言語向けですか -すでにかなりの数の言語が用意されています。
David Astelsによる「テスト駆動型開発:実用ガイド」のコードに基づいて、VFPで適切な単体テストフレームワークを作成しました。例を読み、テクニックを理解し、Javaコードを自分の言語に翻訳することで、長い道のりを歩むことができます。
NUnit を使用した C# での実用的な単体テストが非常に役立つことがわかりました。
このスタイルの単体テスト フレームワークがどのように機能するかを理解するために、他のいくつかの言語で xunit を使用することを出発点としてお勧めします。次に、動作を深く掘り下げ、新しい言語に適合する方法でその動作を再現する方法を検討する必要があります。