アサートとアクトのステップを組み合わせても大丈夫ですか?AAAはルールというよりもガイドラインですか?それとも私は何かが足りないのですか?
これが私のテストです:
[TestMethod]
public void CancelButtonSelected_DontCancelTwiceThenCancel_DialogCloses()
{
// Arrange
IAddAddressForm form = Substitute.For<IAddAddressForm>();
// Indicate that when Show CancelMessage is called it
// should return cancel twice (saying we want to cancel the cancel)
// then it should return ok
form.ShowCancelMessage().Returns(DialogResult.Cancel,
DialogResult.Cancel, DialogResult.OK);
AddAddressController controller = new AddAddressController(form);
AddressItem item = TestHelper.CreateAddressBob();
// Act
EnterAddressInfo(form, controller, item);
controller.CancelButtonSelected();
Assert.IsTrue(form.DialogResult == DialogResult.None);
controller.CancelButtonSelected();
Assert.IsTrue(form.DialogResult == DialogResult.None);
controller.CancelButtonSelected();
// Assert
Assert.IsTrue(form.DialogResult == DialogResult.Cancel);
}
したがって、メソッドを3回呼び出します。呼び出しのたびに、ダイアログが実際にキャンセルされていないことを確認したいと思います。次に、3回目の呼び出しで、ダイアログをキャンセルする必要があります。
これはAAA構文/スタイリングの「合法的な」使用ですか?