Новое в nUnit, получение ошибки... "не доступно в этом контексте, потому что это" Public ""

Я написал следующий код как мой первый тест в nUnit.

Public Class Tests

    <TestFixture()>
      Private Class TranslationTest

          <Test()>
          Private Sub LanguageTest()
            Dim stringToTest As String = "Tower Count"

            strLanguageText(stringToTest, LanguageIDs.English, 0)
            Assert.Equals("Tower Count")


          End Sub
      End Class
    End Class

Intellisense говорит, что и метод strLanguageText, и перечисление LanguageIDs.Enlish "не доступны в этом контексте, потому что это" Public "". Я могу понять, что что-то недоступно, потому что его модификатор - Private, но почему наличие модификатора Public препятствует тому, чтобы оно было доступно тесту?

1 ответ

Решение

Несмотря на то, что ошибка показала "Public", когда я посмотрел на тестируемый метод, его модификатор был Friend. Когда я назначил свой тест тому же пространству имен, что и тестируемые методы, он работал.

Обновление. Согласно справочному документу O'Reilly C# & VB.NET "У внешних классов на уровне IL есть только две возможные области: частная или открытая".

Мое удивительное предположение состоит в том, что именно поэтому ошибка была объявлена ​​как "Публичная".

Другие вопросы по тегам