私のテストケースでDBUnitに問題があります。私がdb単位で私のデータを作成するとき、私は現在、Idを明示的に指定しています。このような感じです。ユーザーのidが指定されているのでIDを自動生成するためのDbunit xmlfile機能
<users user_id="35" corpid="CORP\35" last_login="2014-10-27 00:00:00.0" login_count="1" is_manager="false"/>
<plans plan_id="18332" state="1" owned_by_user="35" revision="4"/>
<plan_history plan_history_id="12307" date_created="2014-08-29 14:40:08.356" state="0" plan_id="18332"/>
<plan_history plan_history_id="12308" date_created="2014-08-29 16:40:08.356" state="1" plan_id="18332"/>
<goals goal_id="12331" goal_name="Dansa" description="Dans"/>
<personal_goals plan_id="18332" personal_goal_id="18338" date_finished="2014-10-28 00:00:00.192" goal_id="12331" state="0"/>
<personal_goal_history personal_goal_id="18338" personal_goal_history_id="18005" date_created="2014-08-29 14:40:08.356" state="1" />
<activities activity_id="13001"/>
<custom_activities activity_name="customActivity" description="Replace" activity_id="13001"/>
<personal_activities personal_activity_id="17338" personal_goal_id="18338" date_finished="2014-10-28 00:00:00.192" state="0" activity_id="13000"/>
<personal_activity_history personal_activity_id="17338" personal_activity_history_id="18338" date_created="2014-08-29 14:40:29.073" state="1" />
は、文字通り、私たちはしばしば、テスト間の問題をマージ取得し、それらを解決するために、本当に厄介です。これは、異なる支店で作業している可能性があり、複数の人が同じIDを割り当てている可能性があるからです。このソリューションは、シード・データ内のすべてのIDとすべてのリレーショナルIDを更新し、テスト・ファイルを更新します。この作品は本当に面倒です。
ここでは、自動生成IDを取得する方法を探しています。たとえば、getNextId("User")
やgetLatestId("User")
のような関数は大きな助けになります。このような何かがDBユニットにあるのでしょうか、それとも自分自身でこのような機能を作り出すことができますか?
この問題を避ける方法については、他にも喜んでお勧めします。
「テスト間のマージの問題」とはどういう意味ですか? – Jeff
これは、vscシステム(git)の異なるブランチでテストを追加するときに、シードデータファイルをマージしようとするときに問題があることを意味します。これは、特定のテストのために特定のユーザーのIDを与える必要がある場合、そのIDをブランチのテストで使用していないことを確認する必要があるからです。大規模なチームにとってこれは本当に難しいことですが、今度はテストでのIDとシードデータにあるIDの両方の番号を付け直す必要があります。 –