我刚刚开始进行单元测试(使用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.
我不知道该怎么做,我找不到类似的例子.
我注意到在 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) 我正在尝试在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”。此外,这里还有一些其他示例: