小编nkr*_*1pt的帖子

Android设备在无头机上与Jenkins一起测试

我正在收集信息,在无头机器上设置Jenkins CI服务器,用于Android单元测试.但是,由于Android单元测试需要运行模拟器,似乎需要图形环境,或者是否可以在非图形模式下运行模拟器?Jenkins Android Emulator插件上的wiki条目在这个问题上也不是很有启发性,它指出:

如果你有无头运行的构建从站(例如不运行X服务器的Linux服务器),建议利用Jenkins的Xvnc插件.启用此插件后,您可以在无头奴隶上并行运行多个Android模拟器,同时保持启用"显示模拟器窗口"选项.

这是否意味着模拟器可以在无头机上运行,​​并禁用"显示模拟器窗口"选项?

如果需要图形环境,大多数消息来源所说的最简单的解决方案是使用Xvnc插件,该插件使用Xvnc服务器来提供X实例.但是,如果我理解正确,这个Xvnc服务器必须在另一台可用X的机器上运行,或者它是否在无头机上运行,​​从那里提供X实例?

android unit-testing jenkins

22
推荐指数
1
解决办法
6601
查看次数

特质不仅仅是构图吗?

我正在阅读一篇关于PHP 5.4.0中的新功能的文章.最令人期待的一个是特质.

阅读这些特征,看看它们的全部内容,它们只是看起来像编译器辅助的复制粘贴给我; 和一种语言提供了使用组合的方式,非常类似于众所周知的战略模式中使用的,它利用了"有利于构成而不是继承"的设计原则.

我理解正确吗?

这些特性可以提供哪些其他优势,这使得它们有价值而不仅仅是使用构图设计原则?

php oop traits mixins

21
推荐指数
2
解决办法
3386
查看次数

测试使用EasyMock调用void方法

这可能吗?我尝试过,EasyMock.expectLastCall().times(0);但EasyMock抱怨时间必须> = 1

java unit-testing easymock

16
推荐指数
4
解决办法
2万
查看次数

我在单元测试中做了一些根本错误的事情吗?

在阅读了一篇关于单元测试行为而不是状态的有趣文章之后,我开始意识到我的单元测试经常与我的代码紧密耦合,因为我正在使用模拟.我无法在没有模拟的情况下对单元测试进行成像,但事实是这些模拟将我的单元测试与我的代码非常相似,因为期望和返回调用.

例如,当我创建一个使用模拟的测试时,我会记录对特​​定模拟的所有调用并分配返回值.现在当我因任何原因更改实际代码的实现时,很多测试都会中断,因为模拟不希望这个调用,也迫使我更新单元测试,并有效地强迫我实现每次更改两次......这种情况发生了很多.

这个问题是否是使用模拟所固有的问题,我应该学会忍受它,还是我做了一些根本错误的事情?请赐教:)当然,欢迎提供明确的解释说明.

unit-testing mocking

12
推荐指数
1
解决办法
214
查看次数

JUnit:检查是否调用了void方法

我有一个非常简单的文件监视器类,如果文件已更改,则每2秒检查一次,如果是,onChange则调用方法(void).有没有一种简单的方法来检查onChange方法是否在单元测试中被调用?

码:

public class PropertyFileWatcher extends TimerTask {
    private long timeStamp;
    private File file;

    public PropertyFileWatcher(File file) {
        this.file = file;
        this.timeStamp = file.lastModified();
    }

    public final void run() {
        long timeStamp = file.lastModified();

        if (this.timeStamp != timeStamp) {
            this.timeStamp = timeStamp;
            onChange(file);
        }
    }

    protected void onChange(File file) {
        System.out.println("Property file has changed");
    }
}
Run Code Online (Sandbox Code Playgroud)

测试:

@Test
public void testPropertyFileWatcher() throws Exception {
    File file = new File("testfile");
    file.createNewFile();
    PropertyFileWatcher propertyFileWatcher = new PropertyFileWatcher(file);

    Timer …
Run Code Online (Sandbox Code Playgroud)

java junit

11
推荐指数
2
解决办法
4万
查看次数

AngularStrap datepicker看起来很奇怪

我正在尝试在我的项目中使用AngularStrap datepicker,方法是遵循AngularDart入门指南中 的说明功能很好,但看起来很不对劲.即使没有我自己的样式表加载,外观也不应该是它应该是什么.这两个截图应该澄清问题:

应该如何看待:

应该怎么样

它看起来如何:

在此输入图像描述

该应用程序是yeoman.io脚手架

bower.json配置:

{
  "name": "myapp",
  "version": "0.0.0",
  "dependencies": {
    "angular": "~1.2.14",
    "json3": "~3.2.6",
    "es5-shim": "~2.1.0",
    "jquery": "~1.10.2",
    "bootstrap": "~3.1.0",
    "angular-resource": "1.2.14",
    "angular-cookies": "1.2.14",
    "angular-sanitize": "1.2.14",
    "angular-route": "1.2.14",
    "moment": "~2.5.1",
    "angular-strap": "~2.0.0",
    "angular-motion": "~0.3.2",
    "angular-animate": "~1.2.14"
  },
  "devDependencies": {
    "angular-mocks": "1.2.14",
    "angular-scenario": "1.2.14"
  },
  "resolutions": {
    "angular": "1.2.14"
  }
}
Run Code Online (Sandbox Code Playgroud)

相关的index.html代码段:

<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="bower_components/angular-motion/dist/angular-motion.min.css" />
...
<link rel="stylesheet" href="styles/style.css"/>
....
<script src="bower_components/es5-shim/es5-shim.js"></script>
<script src="bower_components/json3/lib/json3.min.js"></script>

<!-- build:js scripts/vendor.js -->
<!-- …
Run Code Online (Sandbox Code Playgroud)

css angularjs angular-strap bootstrap-datepicker

8
推荐指数
1
解决办法
8960
查看次数

jquery加载问题

我正在使用jQuery加载函数异步加载页面,如下所示:

tree.click(function() {
                if ($(this).hasClass("file")) {
                    tree.removeClass("selected");
                    $(this).addClass("selected");
                    content.load("content/"+this.id+".html");
                    contentContainer.effect("highlight");
                    SyntaxHighlighter.all();
                }                         
            });
Run Code Online (Sandbox Code Playgroud)

其中一个外部页面如下所示:

<pre class="brush: java;">
   /**
     * The HelloWorldApp class implements an application that
     * simply prints "Hello World!" to standard output.
     */
   class HelloWorldApp {
      public static void main(String[] args) {
         System.out.println("Hello World!"); // Display the string.
      }
   }
</pre>
Run Code Online (Sandbox Code Playgroud)

现在的SyntaxHighlighter.all(); 从上面调用tree.click()函数应该使用漂亮的语法高亮显示前块,但是当通过jQuery load()函数使用pre块加载文件时,这不起作用.

当我将预块硬编码到主文件的内容div中时,它确实有效.

有任何想法吗??

谢谢你到目前为止的答案.我理解回调部分,我现在在load函数的回调中实现了SyntaxHighlighter.all()调用,但仍然没有运气......

我将追加2个完整的文件,因为它们的大小相同.

index.php文件:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>braindump</title>
    <link type="text/css" href="css/style.css" rel="stylesheet" />
    <link type="text/css" href="css/jquery.treeview.css" rel="stylesheet" />
    <script …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

6
推荐指数
1
解决办法
3320
查看次数

你会如何拦截所有例外情况?

根据您的原因,拦截Java应用程序中所有异常的最简单方法是什么?是否需要AOP来提供这种功能,还是可以使用动态代理来完成,还是有其他方式?最简单的解决方案是否也是影响执行性能的良好解决方案?我想听听更有经验的开发人员可能的解决方案,因为我正在努力掌握有关该主题的技术知识.

编辑:

感谢您提出的好建议,但目前的建议是否仅适用于已检查的例外情况?那些未经检查的异常,比如NullPointerExceptions,如果可以捕获它们并且捕获它们的应用程序转储堆/堆栈以便在崩溃时为您提供应用程序的当前上下文,那么它会不会有用呢?

java exception interceptor

5
推荐指数
3
解决办法
6198
查看次数

使用Java发送带有HTTP请求的cookie

我试图通过创建一系列Http请求在Java客户端中获取某个cookie.看起来我从服务器获得了一个有效的cookie,但是当我用一个看似有效的cookie向fnal url发送请求时,我应该在响应中获得一些XML行,但响应是空白的,因为cookie是错误或因会话已关闭或其他我无法弄清楚的问题而无效.服务器发出的cookie在会话结束时到期.

在我看来,cookie是有效的,因为当我在Firefox中执行相同的调用时,类似的cookie具有相同的名称,并以3个相同的字母和相同的长度开始存储在firefox中,也会在到期结束时到期会话.如果我然后向最终URL发出请求,只有这个特定的cookie存储在firefox中(删除了所有其他cookie),那么xml很好地呈现在页面上.

关于我在这段代码中做错了什么的任何想法?另一件事是,当我在这段代码中使用生成并存储在Firefox中的非常相似的cookie中的值时,最后一个请求会在HTTP响应中提供XML反馈.

// Validate
        url = new URL(URL_VALIDATE);
        conn = (HttpURLConnection) url.openConnection();
        conn.setRequestProperty("Cookie", cookie);
        conn.connect();

        String headerName = null;
        for (int i = 1; (headerName = conn.getHeaderFieldKey(i)) != null; i++) {
            if (headerName.equals("Set-Cookie")) {
                if (conn.getHeaderField(i).startsWith("JSESSIONID")) {
                    cookie = conn.getHeaderField(i).substring(0, conn.getHeaderField(i).indexOf(";")).trim();
                }
            }
        }

        // Get the XML
        url = new URL(URL_XML_TOTALS);
        conn = (HttpURLConnection) url.openConnection();
        conn.setRequestProperty("Cookie", cookie);
        conn.connect();

        // Get the response
        StringBuffer answer = new StringBuffer();
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line …
Run Code Online (Sandbox Code Playgroud)

java cookies http

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

iText嵌入式ttf字体在Adobe Reader中不可见

我正在使用iText库为现有PDF文件添加额外信息.额外信息是应以自定义TTF字体呈现的文本.

问题是文本仅在Adobe Reader中不可见.其他PDF查看器,例如Ubuntu中的默认eVince阅读器和Google在线PDF阅读器,可以很好地呈现自定义嵌入字体中的标记文本.

我尝试了多种编码,例如Cp1251,BaseFont.Identity_H,......

魔法发生的代码:

PdfReader pdfReader = new PdfReader(new FileInputStream(inputPdf));
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream("stamped.pdf"));
PdfContentByte canvas = pdfStamper.getOverContent(1);
String text = "The stamp";
BaseFont bf = BaseFont.createFont("assign.ttf", "Cp1251",BaseFont.EMBEDDED);
canvas.beginText();
canvas.setColorFill(BaseColor.BLUE);
canvas.setFontAndSize(bf, 13);
canvas.moveText(310, 600);
canvas.showText(text);
pdfStamper.close();
Run Code Online (Sandbox Code Playgroud)

pdf acrobat itext truetype adobe-reader

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