vez una salud programar programa para health gratis desde crear como cero apple app aplicaciones iphone objective-c ruby tdd

iphone - una - programa para crear aplicaciones android



Test Driven Design para iPhone Aplicaciones nativas (2)

Cliff, a largo plazo, es mejor invertir tiempo en herramientas ObjC TDD puras. He usado mi propia rbiphonetest lib en fmdb-migration-manager con éxito, pero su utilidad probablemente se limite a bibliotecas, etc. Incluso entonces habrá, sin duda, suficientes ''trabajos en Cocoa pero fallarán en los escenarios de UIKit'' para hacer que rbiphonetest sea dudoso. Afortunadamente, un día, RubyCocoa se puede construir contra las bibliotecas Intel UIKit y creo que será muy útil y robusto.

Estoy experimentando con el iPhone SDK y haciendo un proyecto TDD ala Dr. Nic rbiPhoneTest. Me pregunto cuántos, si alguno, han tenido éxito utilizando este u otro marco de prueba para iPhone / Cocoa. Más importante, me gustaría saber cómo hacer valer mejor un protocolo de solicitud / respuesta binario patentado. La idea es enviar una solicitud binaria a través de la red y recibir una respuesta binaria. Las solicitudes y las respuestas se crean utilizando byte and''ing y or''ing. Estoy usando el patrón de copia dorada para probar mi solicitud. Esto es lo que tengo hasta ahora. No te rías ya que soy nuevo en el objetivo C y Ruby:

require File.dirname(__FILE__) + ''/test_helper'' require ''fileutils'' require ''io'' require "MyModel.bundle" OSX::ns_import :MyModel module MyTestExtensions def is_absolute_path(path) return /^//.*/.match(path) end def parent_directory(file) dir = file if(! is_absolute_path(dir)) dir = File.expand_path(dir) end dir = File.dirname(dir) assert is_absolute_path(dir), "Expecting an absolute path with #{dir}" return dir end def assert_NSData_contains_bytes_from_file(file, data) assert_not_nil data, "Data should not be nil." assert data.bytes, "data should have bytes" data.length.times { |i| expected = file.getc assert_not_nil expected, "Expected only #{i} bytes. Actual data contains more." actual = data.bytes.int8_at(i) assert_equal expected, actual, "Bytes should be equal at offset #{i} expected #{expected.chr} but was #{actual.chr}" } expected = file.getc raise AssertionFailedError, "Expecting #{expected.chr} at offset #{data.length}" unless expected == nil end end class TestMyModel < Test::Unit::TestCase include OSX include MyTestExtensions def this_files_dir return parent_directory(__FILE__) end def setup @expectedReq = File.new("#{this_files_dir}/ExpectedMyReq") # @expectedReq = File.new("#{this_files_dir}/hello.txt") assert File.exist?("#{this_files_dir}/ExpectedMyReq"), "The file [#{@expectedReq.path}] should exist." end def test_my_model_class_exists MyModel end def test_can_init_instance assert MyModel.instancesRespondToSelector(:init), "MyModel Should define :init" end def test_my_model_can_request_my_data myModel = MyModel.alloc.init data = myModel.requestMyData ''Some query text'' assert_NSData_contains_bytes_from_file @expectedReq, data end end


No sé mucho sobre Ruby o los protocolos binarios, pero si le interesan las pruebas unitarias en iPhone, le recomendamos que consulte Google Toolbox para Mac . Estoy teniendo un gran éxito probando mi aplicación OpenGL ES con ella.