小编Lan*_*nbo的帖子

使用JUnit测试GUI

好吧,我们都知道测试驱动的开发.我需要编写一个基于GUI的库,但说实话,我总是忽略测试.JUnit是否适用于大学等,但我们从来没有比通常的"实施列表和测试它"更深入.

因此,由于我不想为这些功能编写一千个应用程序,我想知道,使用Scala和JUnit进行基于GUI的库测试的"专业"方法是什么?

谢谢收听.

java junit scala

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

子写和字符串连接

美好的一天,

对于工作,我突然需要知道Perl,虽然我几年前曾涉足这些艺术,但我似乎完全迷失了.对于Haskell/Java程序员来说,所有这些非结构化的打字都会让人紧张.

但是,我写了这个sub,它应该采用一行单行字符串并将它们连接成一个单行的多行字符串.我有它喜欢这样:

sub unlines {
    my ( @lines ) = @_;
    my $str = "";
    foreach $line ( @lines ) {
        $str = join $str, chomp($line), "\n";
    }
    return $str;
}
Run Code Online (Sandbox Code Playgroud)

然后我想测试它,当然:

print unlines(("GET / http1.1", "Host: localhost", ""));
Run Code Online (Sandbox Code Playgroud)

事情的结果是

000
Run Code Online (Sandbox Code Playgroud)

还有很多换行.我完全不知道为什么会这样.任何人都可以帮助我,并解释一下,所有这些参数如何传递给Perl中的sub都有效?这似乎是很有趣的事情一样工作@_shift,但打字......这是一场噩梦.

谢谢收听.

perl

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

限制构造函数访问

我有这样的类型

sealed class Foo[A](val value: A)

object Foo {
    def apply[A](v: A)(implicit num: Numeric[A]): Foo[A] =
      /* highly complex stuff to make a Foo[A] */

    implicit def toA[A](x: Foo[A]) = x.value
}
Run Code Online (Sandbox Code Playgroud)

Foo因为一个类只应该保存该值,所以隐含的数字不会有多大意义.但我需要的类型A始终是数字.

所以我的想法是让它不可能Foo在其伴侣之外使用正常的构造函数.这可能在Scala吗?

oop scala

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

Express中的子文件夹样式路由

我想解析这些简单的路线:

http://example.com/foo/bar/baz/
Run Code Online (Sandbox Code Playgroud)

对它们的数量没有理论上的限制.从中获得一个阵列会很好['foo','bar','baz'].

如何使用Express路由?

node.js express

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

node.js的简单降价转换器

我有一个node.js应用程序,我希望允许我的用户通过一点降价来增强他们的消息.但只是一点点.我想要

  • 消毒
  • 粗体(**)和斜体(*)
  • 链接

这就是它,仅此而已.但是在扩展消息传递系统时,我可能需要更多.

我看了看showdown,markdown-js然后PageDown.只有后者进行消毒,但所有这些都不可配置.PageDown是最有希望的,但我不能让它不产生<p>围绕输出.

还有其他一些可以让我更多控制的选择吗?

markdown node.js

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

Scala中的交换运算符定义

假设我为我的类定义了一些运算符,如下所示:

class A {
    def +(f: Float) = /* ... */
}

val a: A = new A
Run Code Online (Sandbox Code Playgroud)

这让我a + 1f很容易做到.如果我想让lib的用户能够写入1f + a怎么办?我该如何实现呢?

scala

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

在Perl中正确处理UTF-8

我已经拿到了文件,(可能)中的Latin-1(ISO 8859-1)编码,并有一定的转换和数据挖掘罢了.输出应该是UTF-8,我已经尝试过任何关于Perl编码转换的内容,但没有一个产生任何可用的输出.

我知道use utf8;开始没什么作用.我试过Encode这个看起来很有前途的软件包:

open FILE, '<', $ARGV[0] or die $!;

my %tmp = ();
my $last_num = 0;

while (<FILE>) {
    $_ = decode('ISO-8859-1', encode('UTF-8', $_));

    chomp;
    next unless length;
    process($_);
}
Run Code Online (Sandbox Code Playgroud)

我尝试过任何我能想到的组合,也被抛入其中binmode(STDOUT, ":utf8");,open FILE, '<:encoding(ISO-8859-1)', $ARGV[0] or die $!;等等.结果是乱序的变音符号,或者错误信息\xC3 is not a valid UTF-8 character,甚至是混合文本(有些是UTF-8,有些是拉丁文-1).

我想要的只是一种简单的方法来读取Latin-1文本文件并通过控制台生成UTF-8输出print.在Perl中有没有简单的方法呢?

perl utf-8 character-encoding latin1

3
推荐指数
2
解决办法
2185
查看次数

使用ffmpeg调整为特定的宽度和高度

我需要自动为视频生成缩略图.我无法预测视频的格式,但我总是需要缩略图为220x120像素.使用-s 220x120产生一种奇怪的伸展,就像-vf "scale=220:120".我希望拉伸是均匀的,如果视频太高或者添加黑色边框,要么切掉顶部和底部.

ffmpeg

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

Zend Framework 2 - 符合缓存的服务工厂

zend文件application.config.php提供了一些缓存配置的方法,我发现它非常适合生产系统:

return array(
        'modules' => array(
                'Application',
        ),
        'module_listener_options' => array(
                'module_paths' => array(
                        './module',
                        './vendor'
                ),
                'config_glob_paths' => array('config/autoload/{,*.}{global,local}.php'),
                'config_cache_enabled' => true,
                'config_cache_key' => md5('config'),
                'module_map_cache_enabled' => true,
                'module_map_cache_key' => md5('module_map'),
                'cache_dir' => './data/cache',
        ),
);
Run Code Online (Sandbox Code Playgroud)

但是,激活会立即导致错误

Fatal error: Call to undefined method Closure::__set_state()
Run Code Online (Sandbox Code Playgroud)

这与作为闭包编写的工厂有关,如下所示:

'service_manager' => array(
    'factories' => array(
        'auth.service' => function($sm) {
            /* hic sunt ponies */
        },
    ),
),
Run Code Online (Sandbox Code Playgroud)

不幸的是, 问题 告诉我,为什么这个错误发生,但不知道如何解决它.

我如何重做这个和类似的,factories以便缓存将与他们一起工作?

php zend-framework-modules zend-framework2

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

Android 上的持久服务

我正在尝试编写一个带有MediaPlayer. 我有不同的活动访问它,所以我认为最好仔细研究服务。

到目前为止它工作正常,我还添加了对 的调用startForeground,如此处所述。通知出现。

但是,当我现在按下设备上的主页或后退按钮时,该服务将停止并被onDestroy调用,并且通知图标消失。当我返回时,服务似乎重新绑定得很好。

我停止了音乐播放onDestroy,所以它当然停止了。但我希望即使用户在使用另一个应用程序时也能保持通知和服务处于活动状态。

编辑:我希望这是相关部分:

public class MediaPlayerService extends Service {
    private static class PlayerMessageHandler extends Handler {
        private final MediaPlayerService owner;

        public PlayerMessageHandler(MediaPlayerService owner) {
            this.owner = owner;
        }

        @Override
        public void handleMessage(Message msg) {
            // Handle
        }
    }

    private static final int NOTIFICATION_ID = 13138;

    private final Messenger messenger = new Messenger(new PlayerMessageHandler(
            this));
    private MediaPlayer player;
    private Notification notification;

    @Override
    public IBinder onBind(Intent intent) …
Run Code Online (Sandbox Code Playgroud)

service notifications android

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