0
アレンジ・メソッドの使用アサートの対象をアサートします。これは自分のデータベースの統合テストであると考えていますか?統合テストでのアレンジ・アサート・アサート・パターンの使用
private void Delete_Release_Test_Data(string conString)
{
UnitTestHelper.PrepareData(new[] { "ReleaseId" }, new object[] { 100 });
UnitTestHelper.InsertPreparedData(conString, RELEASE_TABLE);
}
[Test]
public void Delete_Release(string conString)
{
Delete_Release_Test_Data(conString);
// ARRANGE
// What should I put here ???
// ACT
IReleaseDataProvider provider = new ReleaseDataProvider();
provider.DeleteRelease(100);
// ASSERT
Assert.IsTrue(UnitTestHelper.HasNoData(conString, string.Format("SELECT * FROM {0}", RELEASE_TABLE)));
}
「特定のものはありますか?」1.)はいあります。私たちはすべての前提条件を、テストのたびに呼び出される[Setup]属性を持つセットアップメソッドで通常実行します。私たちはメソッドのための個別のテストデータを持っていません(例外は私が投稿したサンプルです...)したがって、我々のアプローチはどのようにAAAパターンに適合していますか? "... Note:..." 2.)私のdeleteReleaseメソッドは何故失敗するのでしょうか?何も返さないのですか?これは著者自身からのみ削除することができますので、ここでは並行処理は行いません。 – Pascal
AAAは単体テストに重点を置いており、統合テストを行っているので、それを大まかなガイドラインとして使い、細部にはあまり慣れないようにしてください。あなたが[Setup]メソッドを使っているならば、それをアレンジブロックに入れるか、それを持っていない方がいいでしょう。 – Lester
また、私のメモはまだ有効です。 "なぜそれが失敗するべきか尋ねる?"いくつかのシステムでは、期待される動作が無効な入力で失敗すると主張することができますが、システムでは期待される動作は何もしないことがあります。 – Lester