Как делают меня код модульного теста, который создает новый Процесс?

Для быстрой версии 4.0

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch = touches.first
    if touch?.phase == UITouchPhase.began {
        touch?.view?.endEditing(true)
    }
}
5
задан Drew Noakes 2 June 2009 в 08:05
поделиться

3 ответа

Есть два способа обойти это. Первый - использовать инъекцию зависимостей. Вы можете внедрить фабрику и заставить Initiate вызвать метод create, чтобы получить тип ProcessWrapper, который вам нужен для вашего теста.

Другое решение - использовать фреймворк для фиксации, такой как TypeMock, который позволит вам обойти это. TypeMock в основном позволяет имитировать что угодно, поэтому вы можете использовать его для предоставления фиктивного объекта вместо фактических экземпляров ProcessWrapper.

3
ответ дан 15 December 2019 в 01:10
поделиться

I'm not familiar with C# (I prefer mine without the hash), but you need some sort of interface to the process (IPC or whatever is the most convenient method) so you can send it test requests and get results back. At the simplest level, you would just send a message to the process and receive the result. Or you could have more granularity and send more specific commands from your test harness. It depends on how you have set up your unit testing environment, more precisely how you send the test commands, how you receive them and how you report the results.

I would personally have a test object inside the process that simply receives, runs & reports the unit test results and have the test code inside that object.

1
ответ дан 15 December 2019 в 01:10
поделиться

Что делает ваш процесс? Есть ли способ проверить, что он делает то, что должен? Например, он может записывать в файл или таблицу базы данных. Или он может предоставить API (IPC, веб-сервис и т. Д.), Который вы можете попытаться вызвать с тестовыми данными.

С точки зрения TDD, может иметь смысл подключить «фиктивный / тестовый процесс», который выполняет какое-то действие, которое вы легко можете проверить. (Для этого может потребоваться изменение кода, чтобы ваш тестовый код мог что-то внедрить.) Таким образом, вы тестируете только свой код вызова и не обязательно тестируете реальный бизнес-процесс. Затем вы можете использовать различные модульные тесты для тестирования своего бизнес-процесса.

0
ответ дан 15 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: