如何在iPhone模拟器中设置位置(因为它在CoreLocation服务中选取)?
我在显示包含嵌套表(n-deep)的表的内容时遇到问题.我想通过print声明或快速而肮脏的东西将它转储到std out或控制台,但我无法弄清楚如何.我正在寻找打印NSDictionary使用gdb 时得到的粗略等效物.
如果我想研究在Android应用中如何以及在哪里使用[Mainfest.xml中的请求]权限以便删除它们是否有一种简单的方法可以做到这一点?lint或findbugs是否为跟踪项目中使用/滥用的权限提供某种支持?
如何使用Java增加传出wav音频流的音量?我遇到了各种Java TTS引擎和合成语音输出量的问题.是否有API调用或doo-hickey.jar我可以用来提高音量?
我是正确的测试驱动设计或行为驱动设计的忠实拥护者,我喜欢编写测试.但是,我一直把自己编码到一个角落里,我需要在一个特定的测试用例中使用3-5个模拟进行单个类.无论我从哪个方向开始,自上而下或自下而上,我最终都需要一个至少需要三个来自最高抽象级别的合作者的设计.
有人可以就如何避免这个陷阱给出好的建议吗?
这是一个典型的场景.我设计了一个Widget,它从给定的文本值生成一个Midget.在我深入了解细节之前,它始终非常简单.我的Widget必须与几个难以测试的东西进行交互,比如文件系统,数据库和网络.
所以,不是将所有内容都设计到我的Widget中,而是制作一个Bridget合作者.Bridget负责处理复杂性,数据库和网络的一半,使我能够专注于另一半的多媒体演示.那么,我制作了一个执行多媒体作品的Gidget.整个事情需要在后台发生,所以现在我包含了一个Thridget来实现这一点.完成所有操作后,我最终得到了一个Widget,它可以将工作交给Thridget,后者通过一个Bridget来讨论将其结果发送给Gidget.
因为我在CocoaTouch中工作并试图避免模拟对象,所以我使用自分流模式,其中协作者的抽象成为我的测试采用的协议.有3个以上的合作者,我的测试气球变得太复杂了.即使使用像OCMock模拟对象这样的东西,也会给我一个复杂的顺序,我宁愿避免.我试着把我的大脑缠绕在一个菊花链的合作者身上(一个委托给B的代表,他代表C等等),但我无法想象它.
编辑 从下面举一个例子,假设我们有一个必须从套接字读/写并呈现返回的电影数据的对象.
//Assume myRequest is a String param...
InputStream aIn = aSocket.getInputStram();
OutputStream aOut = aSocket.getOutputStram();
DataProcessor aProcessor = ...;
// This gets broken into a "Network" collaborator.
for(stuff in myRequest.charArray()) aOut.write(stuff);
Object Data = aIn.read(); // Simplified read
//This is our second collaborator
aProcessor.process(Data);
Run Code Online (Sandbox Code Playgroud)
现在上面显然处理网络延迟,所以它必须是Threaded.这引入了一个Thread抽象,使我们脱离了线程单元测试的实践.我们现在有
AsynchronousWorker myworker = getWorker(); //here's our third collaborator
worker.doThisWork( new WorkRequest() {
//Assume myRequest is a String param...
DataProcessor aProcessor = ...;
// Use our "Network" collaborator.
NetworkHandler networkHandler …Run Code Online (Sandbox Code Playgroud) 我正在试验iPhone SDK并做一些TDD ala Dr. Nic的rbiPhoneTest项目.我想知道有多少(如果有的话)成功使用这个或任何其他测试框架的iPhone/Cocoa?更重要的是,我想知道如何最好地断言专有的二进制请求/响应协议.想法是通过网络发送二进制请求并接收二进制响应.使用byte和'ing和oring创建请求和响应.我正在使用黄金副本模式来测试我的请求.这是我到目前为止所拥有的.不要笑,因为我是btoh Objective C和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 …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用IntelliJ Idea v15,在Android Studio中花了很长时间后,我感觉有些迷茫.Android Studio的Gradle控制台窗口在哪里?它没有实施吗?是否有插件可以添加它?
我正在寻找任何关于许可问题的建议/直觉/线索/答案,自从我切换到新的Macbook专业版以来一直困扰着我.这就是困境.某些程序在安装期间复制/ usr/local/lib下的库,并且在运行这些程序时,我发现崩溃,我认为这与该文件夹中的文件的权限限制有关.我有错误(无法访问此路径中的文件)尝试安装大胆的插件,然后尝试在此文件夹下执行"ls".我立即获得权限被拒绝,除非我在cmd前面加上sudo.我尝试使用我的用户帐户拥有/ usr/local/lib/audacity文件夹,甚至我仍然在这些文件上获得权限错误.重要的是要注意,问题不是Audacity独有的.一世' 已经看到了Polycom视频会议软件的同样问题,我也无法在这台机器上运行Parallels.(我没有跟踪Parallels的相同问题,但我认为它是相关的.)我模糊地回忆起我过去常用的一些奇怪的Linux cmd魔法,它不仅会授予用户权限,还会调整一些低级别比特允许/禁用某些事情,比如执行,我似乎记得许可事情比执行更深入,但已经过了多年.我不记得detils,我想知道OS X上是否有类似的东西,我可能会忽略它.那个位置和那里的文件有什么特别之处吗?我可以以某种方式改变我的文件系统,使文件看起来不同吗?物有所值,如果我以root身份登录,我似乎能够使用至少一个程序.我没有尝试过其他程序,因为我刚刚发现了这个能力.请帮忙.
我无法让Charles Proxy使用我的iOS 11模拟器.看来我无法让模拟器信任证书.我进入常规 - >设置 - >关于 - >证书部分,然后单击按钮以信任证书.然后当我退出设置并返回时,开关被重置为不可信.我无法坚持下去.还有其他人有这个问题吗?
我正在遇到路障,我想知道这里出色的集体思想是否有帮助.在ObjC CocoaTouch中,我试图模拟一个接受struct参数并返回结构的对象.OCMock正在咳嗽一个发球,所以我尝试用Hamcrest匹配器包裹.没死.我正在测试的函数/方法看起来像这样:
- (CLLocationCoordinate2D)pixelToLatLong:(CGPoint)aPoint;
Run Code Online (Sandbox Code Playgroud)
我使用这样的代码:
#define OCMOCK_STRUCT(atype, variable) [NSValue value:&variable withObjCType:@encode(atype)]
-(void) testMyWidget
{
CLLocationCoordinate2D ulLL = (CLLocationCoordinate2D){123,456};
CLLocationCoordinate2D lrLL = (CLLocationCoordinate2D){654,321};
[[[(id)myObj expect] andReturn:OCMOCK_STRUCT(CLLocationCoordinate2D, ulLL)] pixelToLatLong:(CGPoint){0,0}];
[[[(id)myObj expect] andReturn:OCMOCK_STRUCT(CLLocationCoordinate2D, lrLL)] pixelToLatLong:(CGPoint){320,460}];//lower right point
}
Run Code Online (Sandbox Code Playgroud)
那有点儿.因此,在我的测试中,我正在测试我进行必要的编辑以获得绿色条...错误..构建信息窗口中的绿色按钮.当我确定我的测试应该通过时,我会得到断言失败的错误.这些错误告诉我该方法被意外调用,并将这些结构的值列为问号.我尝试用Hamcrest匹配器包裹结构但是我无处可去.我正准备打破我的调试器,这无疑会告诉我什么是错的.这里有人和OCMock/Hamcrest和结构有类似的麻烦吗?如果是这样,处理这些类型的最佳方法是什么?
iphone ×3
android ×2
objective-c ×2
tdd ×2
audio ×1
cocoa-touch ×1
findbugs ×1
hamcrest ×1
ios11 ×1
java ×1
javasound ×1
lint ×1
linux ×1
lua ×1
macos ×1
mocking ×1
ocmock ×1
permissions ×1
ruby ×1
unit-testing ×1