テスト中に次のようなシナリオがあります。これをテストするためのショートカットがあるかどうか聞いてみたいと思います。Nunit 3.xを使用したパラメータテスト
[Test]
[TestCaseSource(nameof(MlTestCases))]
[TestCaseSource(nameof(QaTestCases))]
public void EditBetSlip_ShouldConvertOddsFromAmericanToDecimal(string selectionId)
{
// Arrange
var betSlipRequest = new PostBetSlipRequest
{
OddStyle = OddStyle.American.ToString(),
Selections = new List<PostOneSelectionRequest>
{
new PostOneSelectionRequest
{
DisplayOdds = $"+{Fixture.Create<int>()}",
Id = selectionId.Replace("#", "%23"),
},
},
Bets = new List<PostOneBetRequest>
{
new PostOneBetRequest
{
OddStyle = OddStyle.American.ToString(),
Id = 0,
Stake = 10,
},
},
};
// Act
_client.EditBetslip(betSlipRequest);
var response = _client.RefreshBetslip(new GetBetSlipRequest { OddStyle = OddStyle.European.ToString() });
var betslip = response.DeserializedBody;
// Assert
Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);
foreach (var selection in betslip.Selections)
{
Assert.DoesNotThrow(() => decimal.Parse(selection.DisplayOdds));
}
}
は今、私は再び同じテストを行うことなく、単にPostBetSlipRequest
とGetBetSlipRequest
のOddStyle
を反転する必要があります。私は[Values]
属性で試したが、それは私が望むように動作しません。
American - European
でこれらの2つのテストケースソースを一度実行し、別の時間をEuropean - American
とすれば可能ですか?
ええ、私は実際にちょっとだった後で私は質問を投稿した後、テストフィクスチャを汚染する静的な "ヘルパー"メソッドを書く必要があるので、ちょっと面倒だと思います(もちろん別のクラスで抽出することもできます) – kuskmen