【发布时间】:2017-10-16 14:37:21
【问题描述】:
我在测试时遇到以下情况,我想问你们是否有测试这个的捷径。
[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));
}
}
现在我需要再次进行相同的测试,但只需翻转 OddStyle 的 PostBetSlipRequest 和 GetBetSlipRequest。我尝试使用 [Values] 属性,但它没有按我想要的方式工作。
我想要的是用American - European 执行所有这两个测试用例源一次,然后用European - American 执行一次,这可能吗?
【问题讨论】:
标签: c# unit-testing testing nunit nunit-3.0