MAN CHUN LIEW Ответов: 1

Как сделать запись модульного тестирования для тестирования функции?


Исходный файл будет проходить по пути к файлу, а в пункте назначения, который является функцией копирования, будет скопирован исходный файл в него.

public bool CopyFile(string sourceFile, string destinationFile)
{
    if (File.Exists(sourceFile))
    {
        File.Copy(sourceFile, destinationFile, true);
        return true;
    }
    else
    {
        return false;
    }

}


Что я уже пробовал:

Я смотрел образец из интернет-ресурсов, но до сих пор не имею об этом ни малейшего представления.

lmoelleb

Я не совсем понимаю, о чем вы спрашиваете? 1) Как написать любой тест? 2) Как запустить тест? 3) Как протестировать этот конкретный метод (то есть вы уже можете запустить фиктивный тест, который ничего не делает)

MAN CHUN LIEW

извините за непонятное название. Я хочу написать тест с помощью visual studio
c#.net фреймворк, но я не знаю, как его написать, чтобы проверить приведенный выше пример.

lmoelleb

Я дал вам список из 3 вариантов на выбор, чтобы сказать нам, где вы застряли. Мы не хотим тратить наше время, рассказывая вам что-то, просто чтобы вам сказали, что вы уже знаете эту часть. Поэтому, пожалуйста, обновите свой вопрос с подробностями, основанными на этих трех вариантах.

MAN CHUN LIEW

ладно

1 Ответов

Рейтинг:
0

F-ES Sitecore

That code can't be unit tested. What is it you're actually testing? File.Exists? File.Copy? Those are third-party functions, you should just assume that they work. To make that code testable you'll need to create some kind of IFileManagement service that has Exists and Copy methods on it. In your actual code you will use a class that implements this interface and uses the System.IO functions to make it work. In your unit test you will use a mocked version of IFileManagement that you configure to either return true or false, and you then check that if Exists returns true that Copy is called, and that if Exists returns false, Copy is not called. You would also test that when Copy is called it is passed the right parameters too.