我是Objective-C和XCode的新手,在讨论编译语言时,我认为我是精神上的挑战.我不知道链接器如何工作以及每个IDE中的构建设置数量让我感到不舒服只是让我害怕.
我几天前开始学习ObjC,当然我开始使用控制台应用程序项目.到目前为止一切都很好,但我有一个Ruby/Rails背景,这让我想立即了解如何在XCode5中设置最基本的TDD环境.
我使用了这个官方开发文档,但它不够全面.通过试验和错误路径,我只是向项目中添加了一个XCTest目标,然后添加了一个测试用例类,测试我的Fraction
类:
#import <XCTest/XCTest.h>
#import "Fraction.h"
@interface FractionTest : XCTestCase
@end
@implementation FractionTest
- (void)setUp
{
[super setUp];
}
- (void)tearDown
{
[super tearDown];
}
- (void)testExample
{
Fraction *fraction = [Fraction new];
}
@end
Run Code Online (Sandbox Code Playgroud)
运行测试时,链接器无法找到引用的符号:
我已经阅读了有关设置Bundle Loaders和Test Host的内容,但没有人真正解释应该设置哪个目标.它们不适合我,我想知道这样一个简单的3档大型"项目"是否需要围绕Build Settings进行调整.
我怎样才能简单地添加一个测试类来测试另一个带有简单断言的类?
我有一张桌子:
+----+----------+----------+
| id | trail_id | position |
+----+----------+----------+
| 11 | 16 | NULL |
| 12 | 121 | NULL |
| 15 | 121 | NULL |
| 19 | 42 | NULL |
| 20 | 42 | NULL |
| 21 | 42 | NULL |
+----+----------+----------+
Run Code Online (Sandbox Code Playgroud)
而且我正在寻找一种简单的方法来position
使用递增整数进行更新(每个父级).所以在我完成后,表格应如下所示:
+----+-----------+----------+
| id | trail_id | position |
+----+-----------+----------+
| 11 | 16 | 1 |
| 12 | 121 | 1 …
Run Code Online (Sandbox Code Playgroud) 这是一个非常典型的控制器的规范,before_filter
当未登录的用户(也称为访客)尝试访问时,该控制器会重定向到登录页面/projects/new
.
describe ProjectsController do
(...)
describe "GET new" do
context 'when not logged in' do
before { sign_in_nobody }
context 'creating project' do
before { get :new }
it 'denies access' do
expect(response).to be_redirect
end
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我已经specced访问的所有可能的结果:index
,:show
并:new
为来宾,用户,管理员和superadmins.我没有使用任何记录或访客用户,管理员或没有任何问题 - 但这实际上是这个规范第一次涉及涉及Devise的行动,before_filter :autheticate_user!
并且它在此失败了.
正如你可能已经怀疑的那样 - 规格甚至没有达到expect(response).to be_redirect
,它在之前引发了一个混合:
Failures:
1) ProjectsController GET new when not logged in …
Run Code Online (Sandbox Code Playgroud) 我在我的用户帐户上安装了nginx(带 乘客)(通过 自制程序).几个小时后我觉得这件事只是拒绝工作,因为我无法让任何Rails3应用程序响应一个简单的nginx声明的位置.经过深思熟虑(AKA试错)我得出的结论是它确实有效,但拒绝使用端口80.
我知道,自制安装是每用户安装,因此它不应该只能在root用户端口上运行(即端口1024及以下),但自制软件本身(以及网络上的各种来源)表明只需运行服务器通过sudo nginx
就足以允许它使用端口80.
这些是配置的重要文件,它们可以正常工作:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 doomhub.local localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Run Code Online (Sandbox Code Playgroud)
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
passenger_root /Users/ellmo/.rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.18/;
passenger_ruby /Users/ellmo/.rvm/rubies/ruby-1.9.3-p125/bin/ruby;
include mime.types;
default_type …
Run Code Online (Sandbox Code Playgroud) devise ×1
homebrew ×1
linker ×1
macos ×1
nginx ×1
objective-c ×1
passenger ×1
plpgsql ×1
postgresql ×1
rspec ×1
sql ×1
unit-testing ×1
warden ×1
xcode5 ×1