小编Joh*_*her的帖子

单元测试的外部数据文件

我是单元测试的新手,我正在接受一些最佳实践建议.我正在使用Xcode在Cocoa中编码.

我有一个方法可以验证用户输入的URL.我希望它只接受http://协议,只接受具有有效字符的URL.

为此进行一次测试并使用测试数据文件是否可以接受?数据文件提供示例有效/无效URL以及URL是否应该验证.我也用它来检查错误消息的描述和域.

为什么我这样做

我已经用JUnit阅读了Java中的实用单元测试,这给出了一个外部数据文件的例子,这让我觉得这没关系.另外,这意味着我不需要用非常相似的代码编写大量单元测试来测试不同的数据.

但另一方面...

如果我正在测试:

  • 无效字符
  • 无效的协议
  • 有效的URL

所有在相同的测试数据文件中(因此在同一测试中)这会在以后引起我的问​​题吗?我读到一个测试应该只是失败的原因之一.

我正在做什么?

如果有的话,其他人如何在单元测试中使用测试数据?

xcode cocoa unit-testing

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

获取另一个应用程序窗口的唯一ID

我是新手Cocoa开发人员,我正在开发我的第一个应用程序.我想从任何应用程序的任何窗口读取一个唯一的标识符 - 无论是Cocoa还是Carbon.Cocoa应用程序使他们的窗口ID可用于AppleScript(尽管我确信通过正确的Objective C路径有更好的方法),但我正在尝试从Adobe应用程序中的文档访问窗口ID.这似乎更棘手.我在参考库中似乎找到的是HIWindowGetCGWindowID:

"当创建窗口时,此函数返回窗口服务器分配的窗口ID.窗口ID通常不适用于任何其他Carbon函数,但可以与需要窗口ID的其他Mac OS X函数一起使用,例如函数在OpenGL中."

这可以用来从我的程序中获取ID吗?或者它只是一个可以在一个应用程序中使用的功能?

如果有人能指出我正确的方向,我将永远感激不尽.

macos cocoa macos-carbon

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

如何在Git中的"覆盖"分支中检索提交?

背景

我只与一个分公司合作 - 主人.

        3---------2---------
                            |
6-------5---------4---------1----------
Run Code Online (Sandbox Code Playgroud)

我做了提交1-3,然后意识到我想从提交1开始工作以进行下一部分工作.我检查了提交1,然后提交了4-6.糟糕!提交3包含我需要的一些重要信息.

问题

当我在GitX中执行git日志或查看所有分支时,我看到的是:

6-------5---------4---------1----------
Run Code Online (Sandbox Code Playgroud)

如何将提交3的位合并回提交6?(这叫做HEAD吗?)

我丢失了2和3的提交吗?

我知道不做新分支是我的错,但这是否意味着这些提交丢失了?

我仍然是一个Git新手(尽管使用它大约6个月)仍然发现它真的令人困惑,所以请温柔!

git branch

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

如何阻止HIToolbox捕获我的异常?

这个问题来自于我的另一个问题,即为什么我的应用程序没有被例外打倒.

问题

当通过Action在主线程上抛出异常时,应用程序仍然不会崩溃.

根据Dave对原始问题的回答,我在NSApplication上实现了reportException类,并设置了未捕获的异常处理程序.

我在我的app委托中有以下内容,我已经连接到我的UI中的一个按钮进行测试.

-(IBAction)crashOnMainThread:(id)sender {
    [self performSelectorOnMainThread:@selector(crash) withObject:nil waitUntilDone:YES];
}

-(void)crash {
    // To test out the exception handling
    [NSException raise:NSInternalInconsistencyException format:@"This should crash the app."];
}
Run Code Online (Sandbox Code Playgroud)

当我按下按钮时,我的应用程序不会崩溃.当我查看控制台日志时,我看到了:

06/09/2010 14:12:25 EHTest1[26384]  HIToolbox: ignoring exception 'This should crash the app.' that raised inside Carbon event dispatch
(
    0   CoreFoundation                      0x00007fff80ab4cc4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x00007fff819560f3 objc_exception_throw + 45
    2   CoreFoundation                      0x00007fff80ab4ae7 +[NSException raise:format:arguments:] + 103
    3   CoreFoundation                      0x00007fff80ab4a74 +[NSException raise:format:] + 148
    4 …
Run Code Online (Sandbox Code Playgroud)

cocoa exception-handling macos-carbon objective-c

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

使用JButton ActionListener在同一包中运行不同的类

我遇到了一个问题,因为我对GUI比较陌生

基本上让每个人都参与其中,我有一个软件包,其中包括:

  • 我的MainClass(包括GUI)
  • 单独的类(除非单击按钮,否则不要运行)
  • 除非单击特定的按钮,否则我不想运行另一个单独的类。

所以我的MainClassGUI基本上是控制器。

但是,老实说,我不知道如何去做。被告知必须创建一个构造函数并使用getter / setter方法?但是,我仍然不知道如何调用该特定的类,而将另一类保持为“ Turned off”

谢谢。

java user-interface constructor jbutton getter-setter

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

post 方法如何在 Ruby on Rails 中工作

我来自 Python 和 Java 背景,只有 CSS、HTML、Ruby 的基本知识,并尝试使用 Ruby on Rails 学习 Web 开发。我正在尝试按照Michael Hartl上的教程进行操作。我不明白代码post清单 7.23 中的方法在做什么参数。

require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

  test "invalid signup information" do
    get signup_path
    assert_no_difference 'User.count' do
      post users_path, params: { user: { name:  "",
                                         email: "user@invalid",
                                         password:              "foo",
                                         password_confirmation: "bar" } }
    end
    assert_template 'users/new'
  end
end
Run Code Online (Sandbox Code Playgroud)

从我在API 中的跟踪来看,它接受了两个都是字符串的非可选参数,但是在代码清单 7.23params:中,第二个参数中突然出现了哈希语法,这让我很困惑。任何人都可以启发我吗?

ruby post ruby-on-rails

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