Utilizzando il modello di assert Act Act con test di integrazione
-
13-11-2019 - |
Domanda
Usando l'operazione Act Assert Cosa dovrebbe essere nella sezione Organizzazione "considerando che si tratta di un test di integrazione sul mio database?
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)));
}
Soluzione
C'è un motivo specifico per cui la prima riga Delete_Release_Test_Data(conString)
Non è sotto organizzare? Da questo link On Orgy Act Assert:
Ogni metodo dovrebbe raggruppare queste sezioni funzionali, separate da linee vuote:
- Organizzare Tutte le condizioni preliminari e gli input necessari.
- Atto sull'oggetto o sul metodo in esame.
- Asserire che si sono verificati i risultati previsti.
L'inserimento di dati di test validi è un presupposto di questo test, il che significa che dovrebbe essere posizionato nella sezione Organizzazione.
Nota: Puoi anche rinominare questo test a Delete_Release_When_Exists
e poi crea anche un test Delete_Release_When_Doesnt_Exist
Per verificare che l'eccezione corretta viene lanciata o il valore di restituzione è corretto.