Новое в nUnit, получение ошибки недоступно в этом контексте, поскольку оно является «общедоступным».

Я написал следующий код в качестве своего первого теста в 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 «недоступны в этом контексте, поскольку они являются общедоступными». Я могу понять, что что-то недоступно, потому что его модификатор Private, но почему наличие модификатора Public мешает тесту сделать это доступным?


person CryptoJones    schedule 11.02.2016    source источник


Ответы (1)


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

Обновление: согласно C# & VB.NET Conversion Pocket Reference, «Внешние классы на уровне IL имеют только две возможные области: частные или общедоступные».

Я предполагаю, что именно поэтому ошибка сообщалась как «Общедоступная».

person CryptoJones    schedule 11.02.2016