小编Cha*_*mor的帖子

Mockito UnfinishedStubbingException

我是Mockito的新手,我试过调查这个例外但我还没有找到具体的答案.当我一起使用两个模拟时,它发生在我的代码中,这意味着我通过模拟的构造函数,另一个模拟.像这样:

...
OperationNode child = getNode(Operation.ADD);
child.insertNode(getConstantNode(getIntegerValue(2));
...

 private ConstantNode getConstantNode(NumericalValue value){
    ConstantNode node = Mockito.mock(ConstantNode.class);
    Mockito.when(node.evaluate()).thenReturn(value);
    Mockito.when(node.toString()).thenReturn(value.toString());
    return node;
}

private IntegerValue getIntegerValue(int number) {
   IntegerValue integerValue = Mockito.mock(IntegerValue.class);
   Mockito.when(integerValue.getValue()).thenReturn(number);
   Mockito.when(integerValue.toString()).thenReturn(Integer.toString(number));
   return integerValue;
}
Run Code Online (Sandbox Code Playgroud)

在其中一个论坛中,我读到没有通过另一个模拟的构造函数发送模拟,因为Mockito可能会对模拟调用感到困惑,所以我尝试了以下内容:

NumericalValue value = getIntegerValue(2);
child.insertNode(getConstantNode(value));
Run Code Online (Sandbox Code Playgroud)

但无济于事.我要确保,只有方法toString()getValue()被调用,因为只有这些方法的类了.我不明白发生了什么.

我也试过分别使用模拟,看看我做错了什么:

child.insertNode(new ConstantNode(getIntegerValue(2)));
Run Code Online (Sandbox Code Playgroud)

这非常有效.

child.insertNode(getConstantNode(new IntegerValue(2)));
Run Code Online (Sandbox Code Playgroud)

这也很好.

java mockito

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

SyncAdapter未被调用"网络痒"

概观

我使用了Google的使用SyncAdapter 的教程而不使用ContentProvider,Authenticator ..等.onPerformSync(...)当我需要通过de SyncAdapter"上传"到服务器时,它可以正常工作.

现在,正如您可以想象的那样,我也需要从服务器下载(是的,我知道使用Google的Cloud Messaing系统会更好,但这是我给出的设置,我不能改变它).为此,我想利用"网络痒"Android系统在有网络可用的情况下进行定期同步.为此,我声明如下:

ContentResolver.setIsSyncable(accounts[0], AUTHORITY, 1);
ContentResolver.setSyncAutomatically(accounts[0], AUTHORITY, true); 
Run Code Online (Sandbox Code Playgroud)

但是我的SyncAdapter 没有被调用.查看其他stackOverFlow问题,如果使用SyncAdapter定位API 10或更低版本似乎存在问题,并且必须调用before方法之前显式添加帐户.所以我最终得到了这个:

AccountManager accountManager = (AccountManager) context.getSystemService(ACCOUNT_SERVICE);

    Account[] accounts = accountManager.getAccounts();
    if(accounts.length == 0){ //ADD DUMMY ACCOUNT
        Account newAccount = new Account(ACCOUNT, ACCOUNT_TYPE);
        ContentResolver.setIsSyncable(accounts[0], AUTHORITY, 1);
        ContentResolver.setSyncAutomatically(accounts[0], AUTHORITY, true); 
        accountManager.addAccountExplicitly(newAccount, null, null);
    }else{
         accounts = accountManager.getAccounts();
        ContentResolver.setIsSyncable(accounts[0], AUTHORITY, 1);   
        ContentResolver.setSyncAutomatically(accounts[0], AUTHORITY, true); 
    }
Run Code Online (Sandbox Code Playgroud)

现在,当用户登录时,或者如果应用程序被杀死并再次启动,则会执行此代码.我想知道,我应该打电话setIsSyncable,setSyncAutomatically只有当我第一次添加dummyAccount时?

此外,SyncAdapter的"良好"部分是它会在发生异常时继续进行调用.但我不太明白这是怎么回事,所以相反我有这个:

private void profileUpdate(){       
TableAccounts db = TableAccounts.getInstance(getContext());
boolean isRecordDirty …
Run Code Online (Sandbox Code Playgroud)

android android-syncadapter

9
推荐指数
1
解决办法
1181
查看次数

Nginx RTMP 模块接收 x.264,输出 HLS 直播流

目标:使用OBS从 PC流式传输,使用 Nginx RTMP 模块接收流并输出给观众,以便他们可以在 PC 和移动设备上查看实时流。为此,Nginx 必须使用 HLS 输出实时流。

我的合作伙伴设置了以下 Nginx 文件,但没有任何反应(这是按照 stackoverflow --> answer 的这个答案完成的)

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

    location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

    location /stat.xsl {
            # you …
Run Code Online (Sandbox Code Playgroud)

nginx stream rtmp live-streaming http-live-streaming

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

Android使用自签名证书连接到服务器

编辑:"下面的代码工作正常,没有错误,没有例外"

我知道关于这个主题的大量问题,以及谷歌让人想起的许多博客.我已经通读了它们,并设法提出了我要解释的内容.我的疑问在于" 我的方法是否正确?它是否有任何副作用? "另一个问题在我解释我的方法时更好.

我在此Android.Developres教程之后使用此方法.

 System.setProperty("jsse.enableSNIExtension", "false");  
 //Java 7 introduced SNI (enabled by default). The server I use is
 // misconfigured I suppose and
 // it sends an "Unrecognized Name" warning in the SSL handshake
 // which breaks my web service.

// Load CA from an InputStream (CA would be saved in Raw file,
// and loaded as a raw resource)
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    InputStream caInput = new BufferedInputStream(new FileInputStream("PATH_TO_CERT.crt"));

    Certificate ca;
    try {
        ca = cf.generateCertificate(caInput); …
Run Code Online (Sandbox Code Playgroud)

java ssl android self-signed

6
推荐指数
0
解决办法
1938
查看次数

Jsoup select不返回所有节点

我刚刚开始在这个网站上使用jsoup,并且发生了一些奇怪的事情.

我想要的是选择列标题下的文本,您可以使用以下html找到它:

<div class="Table1_A1 grow clear-fix">
    <div class="grd-col grd-col-1a"> … </div>
    <div class="grd-col grd-col-2b">
       <p>
         <span class="T1">
                <a href="...."> TITLE TEXT IS HERE
                </a>
          </span>
        </p>
     </div>
     ...
</div>
Run Code Online (Sandbox Code Playgroud)

看看这个html结构,我想出了以下jsoup选择:

try {
  Document htmlDocument = Jsoup.connect(url).get();
  Elements as = htmlDocument.select("div.grow > div.grd-col-2b > p > span.T1 > a");
  System.out.println(as.html());

} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

事情就是这样:它只打印到标题"尽快",但之后有负载,它们根本就没有出现.所以我想知道,jsoup".select()"对它返回的节点有限制吗?我不知道如何解决这个问题,任何帮助都非常感激.

java jsoup

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

Tailwind 一种任意颜色在写为变量时不起作用

Tailwind 声明,当涉及到我们不想污染 tailwind 配置的任意颜色时,以下情况是可能的:

bg-[#e73d3dFF]
Run Code Online (Sandbox Code Playgroud)

现在在代码中,当像这样编写所述颜色时,它可以工作

bg-[#e73d3dFF]
Run Code Online (Sandbox Code Playgroud)

这是让我感到困惑的部分,当使用任何形式的编译编写时(我将显示所有示例),它不起作用。字符串正确打印到 HTML 上,但颜色未呈现。

实施例1

`bg-[${navItem.bg.hex}]`
Run Code Online (Sandbox Code Playgroud)

实施例2

const classStyle = `bg-[${navItem.bg.hex}]`;
classNames({[classStyle]: true}); 
Run Code Online (Sandbox Code Playgroud)

示例3:

'bg-[' + {navItem.bg.hex} + ']'; 
Run Code Online (Sandbox Code Playgroud)

上面的所有示例都会正确打印 HTML,因此我们确实看到:

<li class="bg-[#e73d3dFF]">
Run Code Online (Sandbox Code Playgroud)

但是,问题在于,颜色没有显示,规则没有应用,就像颜色规则不是由 Tailwind 创建的一样。

有任何想法吗?

reactjs tailwind-css

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

Node.js VS. 用于简单客户端应用程序的JavaFX(从服务器打印出消息)

有问题的申请

服务器端

用Node.js编写的服务器将处理一些请求并发送客户端应用程序需要为用户打印的文本消息.

客户端

客户端将从服务器接收消息并将其打印出来.客户端将在PC中运行.

问题

我的同事和我正在质疑什么技术最适合客户端应用程序,看看它将是多么简单.它所要做的就是拥有一个很好的GUI,可以打印出从服务器收到的任何消息.

客户端申请的候选人

Node.js的

一种可能性是使用Node.js,html,css和javascript构建客户端应用程序.这方面的主要优点是服务器采用相同的技术构建,通过套接字进行通信非常容易.不需要从客户端进行轮询,因为它们将始终通过套接字连接,并且每当服务器收到消息时,它都会将其推送到客户端,客户端将采取相应的行动.

JavaFX的

这将是另一种可能性,因为GUI将具有动画,并且它需要尽可能平滑.这里的问题是缺乏JavaFX的经验,以及它在与服务器的持续连接中的执行情况.


我真的很感激有经验的人的见解.

sockets client-server javafx node.js

2
推荐指数
1
解决办法
2262
查看次数

什么更有效?使用.replace()或将字符串传递给列表

从CodeFights解决以下问题:

给定两个字符串,找到它们之间的公共字符数.对于s1 ="aabcc"和s2 ="adcaa",输出应为commonCharacterCount(s1,s2)= 3.

字符串有3个共同字符 - 2"a"和1"c".

我接近它的方式,每当我考虑到一封信,我想取消它,以便不再计算它.我知道字符串是不可变的,即使使用诸如.replace()(replace()方法的方法返回字符串的副本,没有实际的字符串更改).

为了改变说string我在开始时倾向于做的事情,只需将其传递给列表,list(mystring)然后改变它.

问题是 ......以下哪些更有效?考虑到选项B一遍又一遍地完成,最坏的情况是字符串相等并且匹配匹配.同时选项A发生一次.

选项A)

list(mystring) 
Run Code Online (Sandbox Code Playgroud)

选项B)

mystring = mystring.replace(letterThatMatches, "")
Run Code Online (Sandbox Code Playgroud)

python string performance

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