Проблема : как настроить базу данных для тестовых случаев с помощью предварительных тестов
Хранимая процедура, которую я пытаюсь протестировать:
CREATE PROCEDURE update_player
@Username NVARCHAR (250),
@Luck INT,
@DiceNumber INT
AS
UPDATE [dbo].[Player]
SET [Coins] = dbo.CalculatePlayerCoins(@Luck, @DiceNumber)
WHERE [Username] = @Username
GO
функция, используемая моей хранимой процедурой:
CREATE FUNCTION CalculatePlayerCoins
(@Luck INT, @DiceNumber INT)
RETURNS INT
AS
BEGIN
DECLARE @ret INT;
SELECT
@ret = @Luck * @DiceNumber * (SELECT Value FROM getRandomValue)
IF (@ret IS NULL)
SET @ret = 0;
RETURN @ret;
END;
Что я сделал :
- Я создал SQL проект базы данных в Visual Studio.
- Импортировал мою базу данных
- Выбрал мою хранимую процедуру и создал из нее модульный тест (в новом проекте).
Результат :
![enter image description here](https://i.stack.imgur.com/fLyKN.png)
Что я сделал (и понял), так это то, что в этом тесте я пытаюсь запустить хранимую процедуру с входными данными: @Username = 'TestName' , @Luck = 0, @DiceNumber = 170.
Поскольку моя хранимая процедура обновляет 'TestName' игрока, устанавливая для его [Coins] результат @ Luck * @DiceNumber * (ВЫБЕРИТЕ значение ОТ getRandomValue) Я передал @Luck как 0. Таким образом, я ожидаю, что [Coins] of 'TestName' будет установлен в 0 как результат моего мультипликатора ион. Поэтому я создал «тестовое условие», чтобы увидеть, что число действительно 0:
![enter image description here](https://i.stack.imgur.com/fWCAi.png)
Однако у моего игрока по умолчанию может быть 0 монет, и поэтому я Я не уверен, что моя хранимая процедура работает. Итак, вопросы:
1) насколько я понимаю: в моей базе данных нет проигрывателя 'TestName'. Добавляет ли фреймворк фальшивый во время теста, а затем удаляет его?
2) правильно ли я понял, что, как у меня есть этот тест, я пытаюсь запустить хранимую процедуру с этими входами?
3) как установить предварительный тест, чтобы установить количество например, монеты моего игрока «TestName» равны 1 (например), чтобы проверить, что мой стандартный случай процедуры действительно работает, и установить его монеты в 0?