我目前正在阅读" 测试引导的面向对象软件"这本书,该书对测试驱动开发进行了很好的介绍.
一个缺点是通过本书开发的代码基于Swing.对于我的下一个项目,我想使用Java FX 2,我想知道是否有任何GUI测试框架呢?本书介绍了windowlicker,它只允许测试Swing应用程序.
我正在为现有应用程序整合黄瓜测试阶段.该应用程序与后端进行大量交互.最简单的情况是注册用户.
为了使测试可重复,我不能违背(真正的)后端(出于几个原因,一个人无法使用相同的电子邮件注册两个用户).
我想知道我有哪些选项可以模拟后端行为并提供模拟响应.对于单元测试,我知道Nocilla和其他几个框架.当然,将它们集成在一起不适用于葫芦测试.
一种替代方案是运行一个真正的服务器,我从葫芦测试中控制它来控制网络.但这似乎有点矫枉过正.另一个选择是在calabash目标中有模拟对象,我可以通过calabash后门机制控制它.
我怀疑这不是唯一的选择.所以我的问题是:有更优雅的方式吗?
一个小问题:为什么Xcode抱怨listing 1会导致保留周期,而listing 2不是?在这两种情况下_clients都是一个int实例变量.在listing 2它被分配0的init方法.
背景信息:我想在块中执行循环,只要至少有一个客户端从iPhone加速度计请求更新,我将发布到redis频道.如果没有剩余客户端,则循环将退出并停止发布加速计数据.
Listing 2来自我写的一个小测试应用程序来验证我的想法是否有效.Listing 1在实际项目中实施.
- (id)init {
self = [super init];
if (self) {
_clients = 0;
/**
* The callback being executed
*/
_callback = ^ {
while (_clients > 0) { // Capturing 'self' strongly in this block is likely to lead to a retain cycle
NSLog(@"Publish accelerometer data to redis (connected clients: %d)", _clients);
} …Run Code Online (Sandbox Code Playgroud) 给出以下视图控制器布局.
我们通过首先呈现构建模态视图控制器的堆叠B上A,然后呈递C上B.根据Apple文档dismiss(animated:completion:),调用它A应该实际上C以动画方式关闭最顶层的视图控制器(在这种情况下)和所有没有动画的中间视图控制器.但是,C如果没有动画就会被解雇,并B以动画方式被解雇.
最近我试图获得原型链的技术方面.现在我有一些关于对象实例化的问题.
请考虑以下代码:
var Foo = function(s) {
this._bar = s;
};
var fooInst = new Foo('test');
Run Code Online (Sandbox Code Playgroud)
现在当我检查创建的对象时,然后:
Foo.prototype === Function.prototype; // true
fooInst.prototype === ?
fooInst.prototype.prototype === Object.prototype; // true
Run Code Online (Sandbox Code Playgroud)
我想知道,fooInst.prototype到底是什么.在铬合金检查它似乎是某种Foo与constructor性能.但是我读到的关于原型的所有资料都说明fooInst.prototype === Foo.prototype应该是真的.
所以我的问题是:JS如何处理原型链.我打电话到底发生了什么new Foo.
提前致谢!
编辑
于是我发现,(在Chrome)Object.getPrototypeOf(fooInst) === Foo.prototype;是true,但Object.getPrototypeOf(fooInst) === Object.getPrototypeOf(Foo)是false.为什么?
ios ×3
testing ×2
block ×1
calabash ×1
cocoa-touch ×1
gui-testing ×1
inheritance ×1
javafx ×1
javafx-2 ×1
javafx-8 ×1
javascript ×1
object ×1
objective-c ×1
ui-testing ×1
uikit ×1