2013-08-06 3 views
1

Исходя из Rails/Rspec, я привык быть в состоянии управлять тесты что-то вроде этого:«Гнездо» тестов с OCUnit?

setup { //stuff for all tests goes here } 
tests for "foo" method 
    setup { stuff specific to foo method here } 
    test_foo_1 { ... } 
    test_foo_2 { ... } 
end 
tests for "bar" method 
    setup { // stuff specific to bar method here } 
    test_bar_1 
end 

Таким образом, есть некоторые настройки запуск для всех тестов в файле, а затем для некоторых тестов есть дополнительные настройки что применимо только к этим тестам.

Я знаю о методах setUp и tearDown; то, что я пытаюсь сделать здесь, это факторный код установки, который применяется, скажем, к 5 из 20 тестов для этого файла, но не нужен или даже вреден для остальных 15 тестов.

Возможно ли такое организация в OCUnit при создании iOS? Альтернатива, которую я сейчас рассматриваю, - это определение некоторых дополнительных методов настройки и вызов их вручную из соответствующих тестов.

+0

Возможно, вы захотите изучить [Kiwi] (https://github.com/allending/Kiwi), среду тестирования стиля BDD для iOS, которая должна быть хорошо знакома тем, кто использовал RSpec. –

+0

Да, я еще не готов туда идти. :) – dpassage

+0

SenTestCase установилUp и tearDown. Я считаю, что OCTest использует те же методы. – JeffRegan

ответ

0

Обратим внимание на это, есть несколько базовых модулей тестирования Objective-C, которые располагаются поверх OCUnit/XCTest и предоставляют rspec-подобную тестовую организацию. Specta - один, Kiwi - другой. Kiwi включает в себя свою собственную насмешливую поддержку и ожидания, в то время как Specta имеет ожидания, представленные в отдельный пакет под названием Expecta.

Я использую Kiwi для нескольких проектов, и он работает очень хорошо.

0

Я предполагаю, что вы имеете в виду OCUnit (я не могу найти что-либо под названием OCTest). Если это так, у вас есть методы setUp и tearDown, которые наследуются от SenTestCase (базовый класс OCUnit).

Из этой статьи: http://meandmark.com/blog/2012/05/introduction-to-unit-testing-with-ocunit/

В setUp: и tearDown: Методы

Два дополнительных методов, которые могут помочь вам в модульном тестировании являются setUp: и tearDown:. Если у вас есть код инициализации для выполнения перед запуском нескольких тестов, вы можете поместить этот код в метод setUp: для удаления повторяющегося кода в ваших тестах. Метод tearDown: содержит код очистки. Частым случаем использования метода tearDown: является освобождение любой памяти, которую вы выделили в методе setUp:.

OCUnit вызывает метод setUp: перед запуском каждого теста и вызывает метод tearDown: после запуска каждого теста. Если ваш класс тестирования оборудования имеет 20 тестов, OCUnit звонит setUp: и tearDown: 20 раз.

+0

Да, я имел в виду 'OCUnit', duh. Я попытался добавить ясность в вопросе; Я знаю о 'setUp' и' tearDown' и чувствую, что они не полностью соответствуют моим потребностям. – dpassage

+0

Я думаю, что вы можете делать то, что вы пытаетесь выполнить с наследованием. Базовый класс имеет метод настройки для всех тестов. Класс Foo наследует от Base и использует настройку Base через [super setUp]; Класс Foo также может обрабатывать собственную настройку после вызова setUp of Base. У вас будет больше файлов, но это должно удовлетворить ваши требования. – JeffRegan

+0

Умножение файлов - это то, чего я надеялся избежать. Я могу уйти. – dpassage

 Смежные вопросы

  • Нет связанных вопросов^_^