В тех случаях, когда входы меняют некоторые утверждения, но почти все остальные остаются неизменными, как один раз повторяет использование утвержденных частей. В моем примере один из входов изменил бы только последнее утверждение, остальные останутся прежними.Как повторно использовать утверждения и/или настройки в тестах xBehave?
"When CreateBidCommand is executed"
.x(() =>
{
_createBidCommand = new CreateBidCommand(_client, _bidYear, _optionNumber,
_underwritingLicenseFiling, _underwriter, _bidType, _description, _claimsApplicationType);
_commandDispatcher.Send(_createBidCommand);
});
"Then Bid should be created"
.x(() =>
{
_bid = _bidRepository.FindByBidNumber(_client, _bidYear, _optionNumber);
Assert.NotNull(_bid);
});
" with description"
.x(() => Assert.Equal(_bid.Description, _description));
" with Client"
.x(() => Assert.Equal(_client.Id, _bid.Client.Id));
" with OptionNumber"
.x(() => Assert.Equal(_bid.OptionNumber, _optionNumber));
" with BidType"
.x(() => { Assert.Equal(_bid.BidType.Code, _bidType.Code); });
" with ClaimsApplicationType "
.x(() => Assert.Equal(_bid.ClaimsApplicationType.Code, _claimsApplicationType.Code));
" with RegulatoryBody"
.x(() => Assert.Equal(_bid.RegulatoryBody,_underwritingLicenseFiling.RegulatoryBody));
" with Underwriter"
.x(() => Assert.Equal(_bid.Underwriter, _underwriter));
" with UnderwritingFirm"
.x(() => Assert.Equal(_bid.UnderwritingFirm,_underwritingLicenseFiling.UnderwritingFirm));
"Then one and only one BidProposal should be created"
.x(() => Assert.True(_bid.BidProposals().Count() == 1));
" with BaseForm"
.x(() => Assert.Equal(_underwritingLicenseFiling.BaseForm, _bid.LatestProposal().BaseForm));
"Then one and only one ClientPolicy should be created"
.x(() =>
{
var clientPolicies = _clientPolicyRepository.FindByBidId(_bid.Id);
Assert.Equal(clientPolicies.Count(), 1);
});
"Then ProductionSchedule should have only one step"
.x(() => Assert.True(_bid.LatestProposal().ProductionSchedule.Count() == 1));
" and it should be Initial creation"
.x(() =>
Assert.True(_bid.LatestProposal().ProductionSchedule.ElementAt(0).BidStatusType.Code ==
BidStatusTypeCode.InitialCreation));