え?どういうこと!?
って思いましたよね。
FileMakerでは、レイアウト(画面)が基本となってそこで定義されているTOなど関連データを使ってさまざまな処理を行なっていきますが、まずはレイアウトが仕上がっていなくてもスクリプトができていたらテストしてみませんか?というタイトル内容です。
(長)
俗にいう、「単体テスト」というものと考えてください。
素朴な疑問にお答え
レイアウトがどこまでできていたら単体テストしてもいいんですか?
新規レイアウトなどでレイアウトを作成してリレーションシップグラフでTO(テーブルオブジェクト)を使ったリレーションシップが構築されていれば、もうスクリプトを作ってテストしてしまいましょう。
テーブルとフィールドを用意したら、リレーションシップグラフでTOを設計するところまであると大丈夫です。

テーブルを作成すると、自動でレイアウトが出来上がります。
この状態でまずはOKです。
もし、リレーションシップグラフで作成したTOの名前がレイアウトテーブルと違う場合は、変更しておきましょう。

つまり、まっさらの画面でもスクリプトが出来上がっていたらテストができます。
でも、フィールドが配置されていなかったらデータも入ってないですよね?
レイアウトにフィールドが配置されていなくても、実はデータは入れられます。
試しにレイアウトの表示を「表形式」にして、フィールドにExcelのようにデータを入れられます。
すでにあるデータではなくて、新規レコードを作成するところからスクリプトを作りたいです。
そうですよね。
スタートは新規レコード作成ですよね。
例えば、「+」ボタンを実装する時などが想定されます。
どんどん作りましょう。
このスクリプトでは、新規で見積書を作成し、見積書作成日をボタンをクリックした日、有効期限をその日から14日後に初期設定しています。

作成したら、実行してみます。
このボタンは見積書レイアウトにあることを想定しているので、もし、見積のレイアウトが表示されていなかったら、表示しておきます。

できてますね!
つまり、新規で見積書を作成する、という機能は、レイアウトにフィールドやボタンを配置していなくてもテストが可能です。
レイアウトにフィールドがないと動かないスクリプトステップもありますよね?
あ、気づきました?
そうです。
スクリプトステップによっては、レイアウトに該当のフィールドがないとエラーになるものもあります。
例えば、
PDFを挿入
があげられます。
このスクリプトステップは、レイアウトにフィールドが配置されていないと、エラーが返ってきます。
大抵はこんな感じでPDFがありますよーとレイアウトに配置しますね。

でも、レイアウトにオブジェクトフィールドを配置したくない場合もあります。
アクセス権限によってはPDFを閲覧できないとか操作させたくない、というシーンもあることでしょう。
その時は、レイアウトが表示される領域外に置いておきましょう。

スクリプトトリガのテストの場合はどうするんですか?
あー!
それもありますね。
確かに、レイアウトに配置したオブジェクトなどで実行されることが多いので、レイアウトが出来上がっていた方がいいのでは、、?と思います。
一理あるのですが、第一段階として、単にスクリプトの中身が正しい処理をするかどうか、ということを確認してから、レイアウトのオブジェクトにスクリプトトリガの設定をしてはどうでしょうか?
スクリプトトリガの設定をしたら、テストは第2段階です。
いきなりスクリプトトリガに設定してテストを行なってもいいのですが、中身が正常終了するかどうかが分かってからスクリプトトリガの設定をした方が、テストをした時のエラーの切り分けが単純化できます。
例えば、スクリプトの中身が正常に終了することが確認できていれば、もしかしたら設定するスクリプトトリガの種類が違っているかもしれません。
また、スクリプトトリガの設定の時にスクリプト引数を設定していなかったのが原因かもしれません。
エラーの原因がどこか、を、早い段階で確認できます。
条件付き書式はレイアウトに配置しないと無理ですよね?
うわ、鋭い。
そうですねー、これはさすがにレイアウトにオブジェクトを配置しておかないとできないテストですね。
ただし、レイアウトが整っていなくても、レイアウト上にオブジェクトを配置して置いて、条件付き書式を設定して確認することはできます。
とにかく、レイアウトが完成していなくても、どんどんテストをしていくのです。
そうは言っても画面サイズなどのテストは途中だと難しいですよね
画面サイズは確かにそうですね。
でも、ここは仕様で決めておきましょう!
「このシステムで想定してうる機器環境は、Windowsの画面サイズ◯◯です」
など。
そうすることで、その画面にハマっているかどうかのテストはレイアウトのサイズを設定した時点で可能です。
つべこべ言わずに小さいテスト(単体テスト)を繰り返そう
テストは先延ばしすればするほど戻る距離が長くなります。
三歩進んで二歩下がる、くらいの感覚の小さいテストを繰り返し、システムの完成に繋げていきましょう!


