Получение ошибки компилятора CS0122 - «член» недоступен из-за уровня защиты - при попытке доступа к классу в другом проекте - PullRequest
3 голосов
/ 09 декабря 2010

Я пытаюсь справиться с NUnit - я установил его и успешно запустил в рамках одного проекта.Я хочу сохранить производственный код отдельно от тестового кода, поэтому я пишу тесты в другом проекте.Тестовый проект Ссылки на оригинальный проект.(IDE C # Express 2010)

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

using NUnit.Framework;

namespace test.Import
{
    [TestFixture]
    class XMLOpenTest
    {
        [Test]
        public void openNotAPath(){
            try
            {
                production.Import.XMLHandler.open("Not A Path");
            }
            catch
            {
                Assert.Fail("File Open Fail");
            }
        }
    }
}

Я знаю, что могу решить эту проблему, сделав класс production.Import.XmpHandler общедоступным, но я не хочу его менятьмой производственный код, разрешающий такое тестирование.

Как мне обойти это?Могу ли я внести изменения в свой тест-код?Есть ли другие хорошие способы разделить тестовый и производственный код в двух проектах?Есть ли в Интернете ресурсы для чайников?

1 Ответ

9 голосов
/ 09 декабря 2010

Обычно это решается с помощью InternalsVisibleToAttribute.См. это и это .

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