所以我通过从 pear.phpunit.de 下载文件并将它们解压缩到 C:\PHP\PEAR 文件夹来手动安装 PHPUnit。我在包含路径中有 PEAR 文件夹。我怎样才能运行这个测试?
class StackTest extends PHPUnit_Framework_TestCase
{
public function testEmpty()
{
$stack = array();
$this->assertEmpty($stack);
return $stack;
}
/**
* @depends testEmpty
*/
public function testPush(array $stack)
{
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack)-1]);
$this->assertNotEmpty($stack);
return $stack;
}
/**
* @depends testPush
*/
public function testPop(array $stack)
{
$this->assertEquals('foo', array_pop($stack));
$this->assertEmpty($stack);
}
}
Run Code Online (Sandbox Code Playgroud)
PHPUnit 目录中没有可执行的命令行工具。
我在Snow Leopard上使用Xcode 4.2.我想做什么.基本上,我有一个带有表视图的主视图控制器.为了填充表视图,我需要调用API并从那里下载信息.
从API下载数据时,我想显示一个活动指示器,以便让用户知道正在发生的事情并且应用程序没有卡住.
我所做的是我在表格视图上创建了一个新的UIView,其中包含alpha 0.5并在其中间放置了一个活动指示器.这是我在主控制器视图加载时执行的代码:
// Show the activity indicator
self.overlayView = [[UIView alloc] init];
self.overlayView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
self.overlayView.frame = self.tableView.frame;
self.activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
CGRect frame = self.overlayView.frame;
self.activityIndicator.center = CGPointMake(frame.size.width/2, frame.size.height/2);
[self.overlayView addSubview:self.activityIndicator];
[self.activityIndicator startAnimating];
[self.tableView addSubview:self.overlayView];
Run Code Online (Sandbox Code Playgroud)
从API加载数据时,我隐藏了叠加视图和活动指示器:
[self.activityIndicator removeFromSuperview];
[self.overlayView removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
它工作正常,但问题是叠加视图没有正确对齐,它有一个上边距,它看起来不太好.以下是它的外观:

所以我正在解析一个推特时间表.JSON响应中有一个名为"follow"的字段.它应该是真的还是假的.
但有时候这个领域不见了.
当我做:
NSLog(@"%@", [[[timeline objectAtIndex:i] objectForKey:@"user"] objectForKey:@"following"]);
Run Code Online (Sandbox Code Playgroud)
这是输出:
1
1
0
0
1
<null>
1
1
Run Code Online (Sandbox Code Playgroud)
那么如何检查这些值呢?
所以我有一个main.py file内部/home/richard/projects/hello-python目录:
import sys
sys.path.append('/home/richard/projects/hello-python')
from Encode import Ffmpeg
x = Ffmpeg()
x.encode()
Run Code Online (Sandbox Code Playgroud)
然后我在/home/richard/projects/hello-python/Encode目录中创建了一个包:
__init__.py
Ffmpeg.py
Run Code Online (Sandbox Code Playgroud)
Init文件为空.Ffmpeg.py文件包含:
class Ffmpeg(object):
i = 150
def __init__(self):
print "i am constructor"
def encode(self):
print "hello world"
Run Code Online (Sandbox Code Playgroud)
现在我main.py像这样运行脚本:
python main.py
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
richard@richard-desktop:~/projects/hello-python$ python main.py
Traceback (most recent call last):
File "main.py", line 5, in <module>
x = Ffmpeg()
TypeError: 'module' object is not callable
richard@richard-desktop:~/projects/hello-python$
Run Code Online (Sandbox Code Playgroud)
我认为我有一些问题,sys.path所以我的模块无法正确导入,但我不知道如何解决它.
所以我有一个很长的方法链,类似于:
return self.append_command("fbghasjfa").append_command(input_file_part).append_command(output_video_codec_part).append_command(output_resolution_part).append_command(output_video_bitrate_part).append_command(strict_part).append_command(output_audio_codec_part).append_command(output_number_of_audio_channels_part).append_command(output_audio_bitrate_part).append_command(output_file_part).__finalized
Run Code Online (Sandbox Code Playgroud)
它看起来很难看.有没有办法将每个方法放在一个单独的行上?喜欢:
return self.append_command("ffasfgas")
.append_command("fvasgvsd")
.append_command("hsdhsdhsd")
#etc
Run Code Online (Sandbox Code Playgroud) 我在js中有简单的自定义排序功能:
function compareDesc(a, b) {
return a.value < b.value;
}
Run Code Online (Sandbox Code Playgroud)
然后我试图对一系列字典进行排序:
var test = [];
test.push({value: 0, foo: "bar"});
test.push({value: 250, foo: "bar"});
test.push({value: 3, foo: "bar"});
test.sort(compareDesc);
alert(test[0].value);
alert(test[1].value);
alert(test[2].value);
Run Code Online (Sandbox Code Playgroud)
它适用于 Chrome 和 Firefox,我得到:
250
3
0
Run Code Online (Sandbox Code Playgroud)
但在所有版本的 IE 中我得到:
0
250
3
Run Code Online (Sandbox Code Playgroud)
所以排序不起作用。任何想法为什么?
我试图从保存在Documents /文件夹中的视频中获取视频缩略图,并将其显示在UITableViewCell内的UIImageView中.这是我获取缩略图的功能:
- (UIImage*) thumbnailImageForVideo:(NSURL *)sourceURL
{
AVAsset *asset = [AVAsset assetWithURL:sourceURL];
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
NSError *err = NULL;
CMTime time = CMTimeMake(1, 1);
CGImageRef imageRef = [imageGenerator copyCGImageAtTime:time actualTime:NULL error:&err];
NSLog(@"err==%@, imageRef==%@", err, imageRef);
UIImage *thumbnail = [[UIImage alloc] initWithCGImage:imageRef];
CGImageRelease(imageRef); // CGImageRef won't be released by ARC
return thumbnail;
}
Run Code Online (Sandbox Code Playgroud)
这是我使用它的地方:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
LibraryCell *libraryCell = [tableView dequeueReusableCellWithIdentifier:@"LibraryCell" forIndexPath:indexPath];
NSString *videoPath = [NSString stringWithFormat:@"%@/%@", [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"], [libraryFiles objectAtIndex:indexPath.item]];
libraryCell.itemImage.image = [self …Run Code Online (Sandbox Code Playgroud) 所以我使用无头浏览器让Behat正常工作,但我想使用Selenium 2来测试一些JavaScript重页.
当我运行vendor/bin/behat时,我在标记为@javascript的第一个场景中出现此错误:
Curl error thrown for http POST to http://localhost:4444/wd/hub/session with params: {"desiredCapabilities":{"browserName":"firefox","version":"8","platform":"ANY","browserVersion":"8","browser":"firefox","name":"Behat test","deviceOrientation":"portrait","deviceType":"tablet","selenium-version":"2.31.0","max-duration":300},"requiredCapabilities":[]}
couldn't connect to host
Run Code Online (Sandbox Code Playgroud)
当我在配置文件中定义443时,我不知道为什么它连接到错误的端口.为什么说设备类型是表?这是我的behat.yml:
default:
paths:
features: tests/functional/features
bootstrap: tests/functional/features/bootstrap
extensions:
Behat\MinkExtension\Extension:
base_url: http://myvirtualhost.com
goutte: ~
selenium2: ~
context:
parameters:
wd_host: 127.0.0.1:4443/wd/hub
wd_capabilities: { "browser": "firefox", "version": "21"}
Run Code Online (Sandbox Code Playgroud)
我让Selenium 2正常运行在127.0.0.1:4443/wd/hub.
我安装了Firefox 21版.
这是我的composer.json,我有Selenium 2驱动程序:
{
"name": "my-website",
"description": "My Website",
"minimum-stability": "dev",
"require": {
"php": ">=5.3",
"zendframework/zendframework": "2.1.5",
"doctrine/common": "dev-master#d7987c96675e153638729383577090feed9854f1"
},
"require-dev": {
"phpunit/phpunit": "3.7.x-dev#19f1d742e0c36150001062f592c93f80aef3a9fd",
"behat/behat": "dev-develop#1f1bead31e96da5e30fd5d499d5cf66d29b68cf6",
"behat/mink": "v1.4.3",
"behat/mink-extension": "dev-master#ef2c8639ebc254f0ff6e555b7834700caf5db9c4",
"behat/mink-goutte-driver": "dev-master#v1.0.8",
"behat/mink-selenium2-driver": …Run Code Online (Sandbox Code Playgroud) 我不是JavaScript专家所以我可能在这里做错了.
我有一个简单的Foo Backbone模型,默认属性栏是一个空数组.我创建了两个模型实例.我将"a"和"b"添加到第一个模型,"c"和"d"添加到第二个模型.当我使用console.log()打印出条形内容时,两个实例看起来都是同一个对象.
JsFiddle:http://jsfiddle.net/P7qsz/
码:
var Foo = Backbone.Model.extend({
defaults: {
bars: []
}
});
var foo = new Foo();
foo.get("bars").push("a");
foo.get("bars").push("b");
console.log(foo.get("bars"));
var foo2 = new Foo();
foo2.get("bars").push("c");
foo2.get("bars").push("d");
console.log(foo2.get("bars"));
Run Code Online (Sandbox Code Playgroud)
在控制台中我看到:
["a", "b", "c", "d"]
["a", "b", "c", "d"]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
是否可以?
我想将一个事件侦听器附加到 HTML5 视频元素上的海报图像,以便在加载并显示海报图像后运行代码。
我正在尝试找出一种方法来做到这一点,但我需要帮助。
javascript ×3
objective-c ×3
ios ×2
iphone ×2
php ×2
python ×2
xcode ×2
backbone.js ×1
behat ×1
html ×1
html5-video ×1
mink ×1
phpunit ×1