C# Модульный тест - System.IO.FileNotFoundException: не удалось загрузить файл или сборку - PullRequest
2 голосов
/ 12 марта 2020

В настоящее время я пытаюсь заняться модульным тестированием для моей фирмы, которая раньше никогда не работала с таким концептом. Ранее я написал программу, которая принимает идентификаторы клиентов и считывает соответствующие данные (название фирмы, адрес и т. Д. c) из нашей базы данных iDB2 и отображает их в пользовательском интерфейсе. Здесь я хочу реализовать модульный тест, который, если я введу определенный идентификатор клиента, ожидает определенного имени клиента в качестве вывода.

К сожалению, тест не пройден, хотя и не должен. При попытке отладки теста выдается следующее исключение:

System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.Security.Permissions, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51. Das System kann d ie angegebene Datei nicht finden.

Модульный тест выглядит следующим образом:

using Kundeninformationen;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace KDNAbrufTest
{
[TestClass]
public class UnitTest1
{
    int input = **customerID**;

    public int Aufruf(int input)
    {
        Methoden.AufrufKundenname(input);
        return input;
    }

    [TestMethod]
    public void TestMethod1()
    {
        string expected = "**customer name**";

        string result = Methoden.AufrufKundenname(input);

        Assert.AreEqual(expected, result);
    }
}
}

Метод AufrufKundenname подключается к базе данных в другом классе с помощью iDB2Connection, iDB2Command и iDB2DataAdapter. В самой программе нет проблем с подключением к базе данных, но я мог пропустить что-то, что мне нужно было бы реализовать в моем тестовом классе.

Я просмотрел множество сообщений о людях, которые решали похожие проблемы, добавляя файл AppConfig в тестовую папку, но, к сожалению, это не помогло мне.

Я сам не являюсь ни экспертом в области модульного тестирования, ни опытным C# программистом, ни Engli sh моим родным языком, поэтому прошу прощения за любые неясные формулировки и ошибки новичка.

1 Ответ

0 голосов
/ 16 марта 2020

Кажется, это интеграционный тест, а не модульный тест. Если вы напишите свой тест таким образом, проблема возникнет, когда клиент, которого вы используете в тесте, будет удален из базы данных. Даже если вы развертываете его с помощью CI / CD, у вас есть большая проблема.

Если вам не нужно, я рекомендую не писать подобные тесты.

Изолировать ваши тесты от базы данных с насмешкой.

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