小编Jon*_*tra的帖子

Google Mock单元测试静态方法c ++

我刚刚开始进行单元测试(使用BOOST框架进行测试,但对于模拟我必须使用Google Mock)我有这种情况:

class A
{
static int Method1(int a, int b){return a+b;}
};

class B
{
static int Method2(int a, int b){ return A::Method1(a,b);}
};
Run Code Online (Sandbox Code Playgroud)

所以,我需要创建模拟类A,并使我的类B不使用A类中的真实Method1,而是使用mock.

我不知道该怎么做,我找不到类似的例子.

c++ googletest googlemock

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

MySQL 与 UNION 的奇怪行为

我注意到在 MySQL 中使用具有超过 16 列的 select 的多个联合时有非常奇怪的行为。我在一个复杂的查询中发现了这个问题,并将其简化以重现问题。我创建了dbfiddle来演示这个问题。确实很奇怪,第一个查询正在对列值进行左移,任何人都可以解释为什么会发生这种情况吗?

WITH test1
     AS (SELECT  1 AS a,  2 AS b,  3 AS c,  4 AS d,  5 AS e,
                 6 AS f,  7 AS g,  8 AS h,  9 AS i, 10 AS j,
                11 AS k, 12 AS l, 13 AS m, 14 AS n, 15 AS o,
                16 AS p, 17 AS q),
     test2
     AS (SELECT  1 AS a,  2 AS b,  3 AS c,  4 AS d,  5 …
Run Code Online (Sandbox Code Playgroud)

mysql union

5
推荐指数
0
解决办法
132
查看次数

Base64编码在Linux CentOS终端和Java中给出了不同的结果

我正在尝试在Linux CentOS上生成一些随机密码,并将其作为base64存储在数据库中。密码是“ KQ3h3dEN”,当我用“ echo KQ3h3dEN”转换时| base64”,因此我将获得“ S1EzaDNkRU4 K ”。我在Java中有功能:

public static String encode64Base(String stringToEncode)
{
    byte[] encodedBytes = Base64.getEncoder().encode(stringToEncode.getBytes());
    String encodedString = new String(encodedBytes, "UTF-8");

    return encodedString;
}
Run Code Online (Sandbox Code Playgroud)

并且encode64Base(“ KQ3h3dEN”)的结果为'S1EzaDNkRU4 ='。

因此,在此示例中,它将添加“ K”而不是“ =“。当在Linux上使用base64和在Java中使用base64编码时,如何确保我将始终获得相同的结果?

更新:更新了问题,因为我在Linux编码字符串的末尾没有注意到“ K”。此外,这里还有一些其他示例:

  • 'echo KQ3h3dENa | base64'=> result ='S1EzaDNkRU5hCg ==',但应为'S1EzaDNkRU5h'
  • 回声KQ3h3dENaa | base64'=> result ='S1EzaDNkRU5hYQo =',但应为'S1EzaDNkRU5hYQ =='

java linux base64

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

标签 统计

base64 ×1

c++ ×1

googlemock ×1

googletest ×1

java ×1

linux ×1

mysql ×1

union ×1