小编ell*_*lmo的帖子

"为架构x86_64定义未定义的符号",为控制台应用程序设置非常基本的单元测试

我是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进行调整.

我怎样才能简单地添加一个测试类来测试另一个带有简单断言的类?

linker unit-testing objective-c console-application xcode5

12
推荐指数
1
解决办法
4273
查看次数

Postgres 9.2 PL/pgSQL循环中的简单更新

我有一张桌子:

+----+----------+----------+
| 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)

sql postgresql plpgsql postgresql-9.2

10
推荐指数
1
解决办法
7724
查看次数

为未登录的用户测试重定向时,"uncaught throw:warden"

这是一个非常典型的控制器的规范,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)

rspec ruby-on-rails devise warden

8
推荐指数
1
解决办法
3508
查看次数

nginx(+ passenger)似乎不在端口80上运行

我在我的用户帐户上安装了nginx( 乘客)(通过 自制程序).几个小时后我觉得这件事只是拒绝工作,因为我无法让任何Rails3应用程序响应一个简单的nginx声明的位置.经过深思熟虑(AKA试错)我得出的结论是它确实有效,但拒绝使用端口80.

我知道,自制安装是每用户安装,因此它不应该只能在root用户端口上运行(即端口1024及以下),但自制软件本身(以及网络上的各种来源)表明只需运行服务器通过sudo nginx就足以允许它使用端口80.

这些是配置的重要文件,它们可以正常工作:

/ etc/hosts中:

##
# 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)

/usr/local/etc/nginx/nginx.conf:

#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)

macos homebrew passenger nginx ruby-on-rails-3

1
推荐指数
1
解决办法
1728
查看次数