Как создать предварительное тестовое и тестовое условие на визуальной студии - PullRequest
0 голосов
/ 12 апреля 2020

Проблема : как настроить базу данных для тестовых случаев с помощью предварительных тестов

Хранимая процедура, которую я пытаюсь протестировать:

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

Что я сделал (и понял), так это то, что в этом тесте я пытаюсь запустить хранимую процедуру с входными данными: @Username = 'TestName' , @Luck = 0, @DiceNumber = 170.

Поскольку моя хранимая процедура обновляет 'TestName' игрока, устанавливая для его [Coins] результат @ Luck * @DiceNumber * (ВЫБЕРИТЕ значение ОТ getRandomValue) Я передал @Luck как 0. Таким образом, я ожидаю, что [Coins] of 'TestName' будет установлен в 0 как результат моего мультипликатора ион. Поэтому я создал «тестовое условие», чтобы увидеть, что число действительно 0:

enter image description here

Однако у моего игрока по умолчанию может быть 0 монет, и поэтому я Я не уверен, что моя хранимая процедура работает. Итак, вопросы:

1) насколько я понимаю: в моей базе данных нет проигрывателя 'TestName'. Добавляет ли фреймворк фальшивый во время теста, а затем удаляет его?

2) правильно ли я понял, что, как у меня есть этот тест, я пытаюсь запустить хранимую процедуру с этими входами?

3) как установить предварительный тест, чтобы установить количество например, монеты моего игрока «TestName» равны 1 (например), чтобы проверить, что мой стандартный случай процедуры действительно работает, и установить его монеты в 0?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...