小编Ahm*_*jar的帖子

API单元测试(测试端点与测试一切)

我们正在使用Laravel构建API,我们面临一个基本问题:

我们是否应该测试所有内容(每个模型,控制器和任何其他类中的每个方法)?或者只是测试API端点,因为测试端点意味着将测试其他所有内容,因为API端点正在使用Controller的方法,而后者又使用Model的方法!

事实上,我倾向于后者测试端点将帮助您测试其他所有内容,但我需要确保这是正确的做法.

编辑:

请考虑以下两点:

  • 测试端点意味着我必须发送HTTP请求并等待响应以查看它是否是我需要的,这对于此方法可能是非常糟糕的.
  • 测试一切意味着我必须找到一些方法来模拟laravel请求及其标题,这对于这种方法来说可能是非常糟糕的.

任何提示或评论将不胜感激.

api unit-testing laravel-4

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

将字节数组写入二进制文件 Javascript

我正在尝试编写一个生成随机数的脚本,然后将这些数字转换为 4 字节组,然后将这些 4 字节组放入 Uint8Array 最后,我尝试将数组保存到二进制文件。这是我的代码:

<html>
<head>
<title>Raandom Number Generator</title>
</head>
<body>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="filesaver.min.js"></script>
<script type="text/javascript">
    $(function() {
        if (!Date.now) {
            Date.now = function() {
                return new Date().getTime();
            };
        }

        alert("started");
        var currentMousePos = {
            x : -1,
            y : -1
        };
        var randomData = [];
        var bytes = new Int8Array(4);

        $(document).mousemove(function(event) {

            if(randomData.length>=1231){
                $(document).unbind('mousemove');
                console.log("Finished generating numbers ... trying to save file");
                randomData = new Uint8Array(randomData);
                var blob = new Blob(randomData, {type: "application/octet-stream"});
                saveAs(blob, "rand.bin"); …
Run Code Online (Sandbox Code Playgroud)

javascript binaryfiles binary-data

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

输出无效

我有一个PHP程序,将PDF文件加密为.xxx文件,此输出正由C#程序读取,该程序将此.xxx文件解密为PDF文件.

我的问题是,当我打开由C#解密的文件时,PDF阅读器告诉我该文件已损坏..当我在PHP中加密纯文本并在C#上解密时,我得到了我加密的文件..所以问题只出现了在PDF文件中或换句话说它出现在BINARY中文件中

有什么建议 ?!

笔记:

  1. 在PHP中我使用mcrypt扩展Rijndael算法CBC PKCS7填充(填充是手动完成的)
  2. 在C#中,我使用RijndaelManaged类来加密和解密数据

编辑:

这是我在PHP中使用的加密方法:

    function encrypt($key, $iv, $text) {
        ini_set ( 'memory_limit', '-1' );
        $mcrypt_cipher = MCRYPT_RIJNDAEL_256;
        $mcrypt_mode = MCRYPT_MODE_CBC;
        $text=addpadding($text,mcrypt_get_block_size($mcrypt_cipher,'cbc'));
        $encrypted = rtrim ( mcrypt_encrypt ( $mcrypt_cipher, $key, $text, $mcrypt_mode, $iv ), "\0" );
        $encrypted = base64_encode ( $encrypted );
        return $encrypted;
    }
Run Code Online (Sandbox Code Playgroud)

这是C#中的解密方法:

    public static string DecryptString(string message, string KeyString, string IVString)
    {
        byte[] Key = Encoding.UTF8.GetBytes(KeyString);
        byte[] IV = Encoding.UTF8.GetBytes(IVString);

        string decrypted = null;
        RijndaelManaged rj = new …
Run Code Online (Sandbox Code Playgroud)

php c# encryption rijndael rijndaelmanaged

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

RegEx BackReference 匹配不同的值

我有一个正则表达式,用于匹配表单的表达式 (val1 operator val2)

这个正则表达式看起来像:

(\(\s*([a-zA-Z]+[0-9]*|[0-9]+|\'.*\'|\[.*\])\s*(ni|in|\*|\/|\+|\-|==|!=|>|>=|<|<=)\s*([a-zA-Z]+[0-9]*|[0-9]+|\'.*\'|\[.*\])\s*\))
Run Code Online (Sandbox Code Playgroud)

这实际上很好并且符合我想要的,正如您在此演示中看到的那样

但是:D(黄油来了)

我想通过使其更具可读性和“紧凑”来优化正则表达式本身。我搜索了如何做到这一点,我发现了一种叫做反向引用的东西,你可以在其中命名你的捕获组,然后稍后引用它们:

(\(\s*(?P<Val>[a-zA-Z]+[0-9]*|[0-9]+|\'.*\'|\[.*\])\s*(ni|in|\*|\/|\+|\-|==|!=|>|>=|<|<=)\s*(\g{Val})\s*\))
Run Code Online (Sandbox Code Playgroud)

我将捕获表达式左侧的组命名为 ,然后将其Val引用为(\g{Val}),现在的问题是,您在这里看到的这个表达式仅在表达式左侧与右侧完全相同的情况下!例如(a==a)or (1==1)and 不匹配诸如(a==b)! 之类的表达式。

现在的问题是:有没有办法引用模式而不是匹配的值?!

php regex pcre

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