Anele Ngqandu Ответов: 0

Как написать модульный тест для метода в задней части кода формы windows


Привет
У меня есть метод, который я хочу проверить, и я получаю эту ошибку
Invoke or BeginInvoke cannot be called on a control until the window handle has been created.


я понимаю это из-за того, что форма должна быть запущена в первую очередь, но есть ли альтернативы?

public partial class ImportForm : Form{
 public ImportForm()
        {
        }
  public bool Test(string[] fileNames)//Method to test
        {
          return true;
        }
}


Что я уже пробовал:

Вот мой модульный тест
[TestMethod]
public void TestTest()
{


    bool results=false;
    var files = new string[4];
    files[0] = @"filename1.xlsx";
    files[1] = @"filename2.xlsx";

    ImportForm form= new ImportForm();
     results = form.Test(files);

    Assert.AreEqual(true, results);
}

G3Coder

Инкапсулируйте функциональность, которую вам нужно протестировать, в отдельный класс, который вы можете модульно протестировать и вызвать из формы - таким образом, вы создадите этот новый класс изнутри формы и модульного теста.

Anele Ngqandu

У меня есть элементы управления, которые я использую, listviews, которые заполняются в foreach внутри этой функциональности

G3Coder

Пусть новый класс содержит список (public property), на который вы можете либо указать listview, либо foreach через него, чтобы заполнить listview после того, как он выполнит свою работу. Вам все равно понадобится что-то в этом роде для теста.

0 Ответов