@Sebastian Спасибо за предложение. Это дает мне некоторые идеи для работы.
тоящее время я пытаюсь написать некоторые модульные тесты для SQL-кода SQL Server, используяtSQLt.
После прочтения документов выясняется, что не поддерживается возможность вызова тестового примера с параметрами вместо записи отдельных тестовых случаев для каждой комбинации параметров.(Ради этого вопроса, пожалуйста, отложите в сторону, считаете ли вы хорошей идеей передать параметры в тестовый пример вместо написания отдельного для каждой комбинации параметров)
Например, вNUnit Вы можете сделать что-то следующим образом, используяПрецедент атрибут:
[TestCase("", -1, false)]
[TestCase("ACT ", 1, true)]
[TestCase("ACT", 1, true)]
[TestCase("aCT", 1, true)]
[TestCase("AUSTRALIAN CAPITAL TERRITORY", 1, true)]
[Test]
public void DetermineStateIdFromText(string aStateText, long aExpectedStateId, bool aExpectedFound)
{
//Arrange
WzDetermineStateIdFromTextInput input = new WzDetermineStateIdFromTextInput
{
StateText = aStateText
};
//Act
WzDetermineStateIdFromTextOutput output = _WzLocationMappingService.DetermineStateIdFromText(input);
//Assert
output.ResultSuccess.ShouldBeTrue();
output.Found.ShouldBe(aExpectedFound);
if (output.Found)
{
output.StateId.ShouldBe(aExpectedStateId);
}
}
(Внутренние части метода теста не имеют значения и включены только для полноты. Вызов mustBe ()Shouldly на случай, если вам интересно, где находятся Asserts.)
Кто-нибудь получил какие-либо решения для обеспечения поддержки стиля TestCase в tSQLt?