Я пишу NUnit TextFixture для частей приложения Windows Forms. Некоторые из классов в файле являются производными от классов компонентов пользовательского интерфейса, например:
[TestFixture]
public class MainFormTest : PersistenceTestBase // Base class here is not a form
{
class TestMainForm : MainForm // MainForm inherits from Form
{
public new String SomeMethod()
{
// Some MainForm private method overridden to expose it to my test fixture
}
}
private TestMainForm mainForm;
[TestFixtureSetUp]
public void TestFixtureSetUp()
{
mainForm = new TestMainForm();
}
[Test]
public void TestMainFormDoesXYZ()
{
// Perform unit testing...
}
}
Однако раздражение, с которым я столкнулся, заключается в том, что, поскольку классы наследуются от классов компонентов пользовательского интерфейса, Windows открывает окно конструктора, когда я дважды щелкаю файл модульного теста в обозревателе решений. Который, поскольку это не «настоящий» элемент пользовательского интерфейса (но тестовый класс), он отображается как поврежденный пользовательский интерфейс (в зависимости от того, как я расположил файл, сообщения типа «Конструктор не может быть показан для этого файла, потому что ни один из классов внутри это может быть разработано "показаны). Есть ли способ подавить это поведение, или мне всегда нужно будет щелкнуть правой кнопкой мыши этот файл и "Просмотреть код"?