小编Ane*_*new的帖子

PHPUnit:验证该数组是否具有给定值的键

鉴于以下课程:

<?php
class Example {
    private $Other;

    public function __construct ($Other)
    {
        $this->Other = $Other;
    }

    public function query ()
    {   
        $params = array(
            'key1' => 'Value 1'
            , 'key2' => 'Value 2'
        );

        $this->Other->post($params);
    }
}
Run Code Online (Sandbox Code Playgroud)

而这个测试用例:

<?php
require_once 'Example.php';
require_once 'PHPUnit/Framework.php';

class ExampleTest extends PHPUnit_Framework_TestCase {

    public function test_query_key1_value ()
    {   
        $Mock = $this->getMock('Other', array('post'));

        $Mock->expects($this->once())
              ->method('post')
              ->with(YOUR_IDEA_HERE);

        $Example = new Example($Mock);
        $Example->query();
    }
Run Code Online (Sandbox Code Playgroud)

如何验证$params(哪个是数组)并传递给$Other->post()包含名为'key1'且值为'Value 1'的键?

我不想验证所有的数组 - 这只是一个示例代码,在实际代码中传递的数组有更多的值,我想在那里只验证一个键/值对.

还有$this->arrayHasKey('keyname'),我可以用它来验证该键存在.

还有$this->contains('Value …

php phpunit

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

如何在Python 3中计算移动平均线?

假设我有一个清单:

y = ['1', '2', '3', '4','5','6','7','8','9','10']
Run Code Online (Sandbox Code Playgroud)

我想创建一个计算移动n天平均值的函数.所以,如果n是5,我希望我的代码计算前1-5,添加它并找到平均值,这将是3.0,然后继续到2-6,计算平均值,这将是4.0,然后3- 7,4-8,5-9,6-10.

我不想计算前n-1天,所以从第n天开始,它将计算前几天.

def moving_average(x:'list of prices', n):
    for num in range(len(x)+1):
        print(x[num-n:num])
Run Code Online (Sandbox Code Playgroud)

这似乎打印出我想要的东西:

[]
[]
[]
[]
[]

['1', '2', '3', '4', '5']

['2', '3', '4', '5', '6']

['3', '4', '5', '6', '7']

['4', '5', '6', '7', '8']

['5', '6', '7', '8', '9']

['6', '7', '8', '9', '10']
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何计算这些列表中的数字.有任何想法吗?

python python-3.x

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

$ PATH优于别名

我对Linux和Unix比较陌生.在互联网的帮助下,我终于找到了工作中的方式$PATH和别名.bashrc.

但我真的找不到任何描述何时使用哪个.

假设我在Library/Frameworks中安装了Python3.3并且可执行文件是 /Library/Frameworks/Python.framework/Versions/3.3/bin/python3,但是我想通过输入python3我的终端来执行python 3.3 .

当我理解正确时,有(至少)三种方法来实现这一点:

1)我在.bashrc中修改$ PATH:

export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}
Run Code Online (Sandbox Code Playgroud)

2)我在.bashrc中设置了一个别名:

alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin
Run Code Online (Sandbox Code Playgroud)

3)创建符号链接(符号链接):

ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin
Run Code Online (Sandbox Code Playgroud)

你会说(根据你的经验)是"推荐"的方式吗?

unix linux shell

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

关于Java和PHP的AES256

到目前为止一直在逃避我的快速(长夜).我在PHP和Java中比较AES256并注意到差异.为简单起见,请忽略ascii键和null IV,这些将在生产中被替换.但我需要首先解决这个问题,无法弄清楚我在哪里犯错:

PHP:

echo base64_encode(
    mcrypt_encrypt(
        MCRYPT_RIJNDAEL_128,
        "1234567890ABCDEF1234567890ABCDEF",
        "This is a test",
        MCRYPT_MODE_CBC,
        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
    )
);
Run Code Online (Sandbox Code Playgroud)

Java的

byte[] key = "1234567890ABCDEF1234567890ABCDEF".getBytes("UTF-8");
byte[] iv  = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);
SecretKeySpec newKey = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, newKey, ivSpec);
byte[] results = cipher.doFinal("This is a test".getBytes("UTF-8"));

return Base64.encodeToString(results,Base64.DEFAULT);
Run Code Online (Sandbox Code Playgroud)

PHP输出: 0KwK+eubMErzDaPU1+mwTQ==

Java输出: DEKGJDo3JPtk48tPgCVN3Q==

不是我期待的o_O!

我也试过MCRYPT_MODE_CBC,MCRYPT_MODE_CFB,MCRYPT_MODE_ECB …

php java encryption aes

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

避免列表中的重复项

我试图避免列表中的重复值,但它不起作用。你能帮我解决这个问题吗?我做了很多工作,但我是 android 的新手,也是编码的新手。你能帮我在我犯错的地方吗?

import java.util.ArrayList;

public class Dynamic extends Activity {

    Button bt, bt2, ent, clr;
    EditText et, et2;
    String input, input1;
    public static ArrayList<String> k_listItems = new ArrayList<String>();
    public static ArrayList<String> p_listItems = new ArrayList<String>();

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt = (Button) findViewById(R.id.nameok);
        et = (EditText) findViewById(R.id.name);

        input = et.getText().toString();

        bt.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                if (et.getText().length() == 0) {
                    Context context = getApplicationContext();
                    CharSequence text = "Enter Your Name";
                    int duration …
Run Code Online (Sandbox Code Playgroud)

android arraylist duplicates

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

构建助手插件不解析项目版本

我有一个项目,我需要在构建清单文件时分解版本号并访问它的组件。在做了一些搜索之后,我找到了 build-helper-maven-plugin 并认为我的问题已经解决了。我将插件添加到主 POM,如下所示。

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <id>parse-version</id>
        <goals>
          <goal>parse-version</goal>
        </goals>
        <configuration>
            <propertyPrefix>parsedVersion</propertyPrefix>
        </configuration>
      </execution>
    </executions>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

此时的项目版本是 3.0.0-SNAPSHOT。我想查看所有部分(尽管在最终版本中我可能不会全部使用它们),因此我将这些行添加到我的清单文件中。

<value name="majorVersion">${parsedVersion.majorVersion}</value>

<value name="minorVersion">{$parsedVersion.minorVersion}</value>

<value name="incrementalVersion">${parsedVersion.incrementalVersion}</value>

<value name="versionQualifier">${parsedVersion.qualifier}</value>

<value name="parsedBuildNumber">${parsedVersion.buildNumber}</value>
Run Code Online (Sandbox Code Playgroud)

构建后我得到了这个。

<value name="majorVersion">0</value>

<value name="minorVersion">{$parsedVersion.minorVersion}</value>

<value name="incrementalVersion">0</value>

<value name="versionQualifier">3.00.0-SNAPSHOT</value>

<value name="parsedBuildNumber">0</value>
Run Code Online (Sandbox Code Playgroud)

值标签实际上是一个 XML 标签,清单文件中有一个结束值标签,我不得不删除它们,因为它们弄乱了显示。

所以增量版本似乎是正确的,虽然我不是很自信,因为主要版本不正确,它没有找到次要版本,并且限定符作为整个版本号返回,而不仅仅是 SNAPSHOT 部分我曾预料到。我可以看到构建号为零的地方是正确的,因为我们没有 Maven 认为的构建号。

关于为什么版本号似乎没有解析的任何想法?我是否错误地实现了这个插件?

谢谢史蒂夫

parsing build version helper maven

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