小编Amb*_*ber的帖子

还有一些你无法测试的东西?

在进行单元测试时,总是很难知道你的框架有多低.

如果我们有一个直接依赖于.NET Framework的类,即System.IO.File类,那么我们真的无法单独测试它.

当然我们可以将它包装并将其注入依赖类,但随后我们开始包装每个.NET类!如果那个包装不是直接通话怎么办?也许它首先做一些检查/业务逻辑,你想要测试?

目前我们已经包装到一定程度,然后就不用费心单元测试那个包装器了.也许这没关系,因为它将在稍后通过集成和探索性测试进行测试?

这是C#中的一个例子,只是为了说明我的观点:

这个类与.NET Framework紧密耦合..很好,但是现在我不能单独测试它,它需要文件存在等等.

public class PathResolver
{
    public string Resolve(string filename)
    {
        string completePath = string.Empty;
        if(!File.Exists(filename))
        {
            return Path.Combine(@"D:\MyExample", filename);
        }
        return completePath;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们可以通过以下方式对此进行单元测试:

public class PathResolver
{
    private readonly IFileSystem _fileSystem;

    public PathResolver(IFileSystem fileSystem)
    {
        _fileSystem = fileSystem;
    }

    public string Resolve(string filename)
    {
        string completePath = string.Empty;
        if(!_fileSystem.Exists(filename))
        {
            return _fileSystem.Combine(@"D:\MyExample", filename);
        }
        return completePath;
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在我们无法测试"FileSystem"类!

其他人的想法是什么?

frameworks unit-testing

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

php的strip_tags()不起作用

我正在尝试调整wordpress一点点,但我在PHP中是0级,所以我有点吮吸:/

我想添加一个自定义的'tweet this'按钮(我知道已经有很多它们,我只想自己做,为了好玩)

所以,我正在尝试这个:

<a href="http://twitter.com/home?status=<?php strip_tags(the_excerpt()) ?>" >tweet this</a>
Run Code Online (Sandbox Code Playgroud)

the_excerpt()返回"<p> ... excerpt ... </p>",strip_tags函数不会删除这些<p>标记!

我做错了什么?

谢谢,对不起,如果很明显的话.

php wordpress

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

git precommit hook以确保HEAD是来自master repo的最新版本

我正在将我的团队从旧的CVS存储库转移到使用git.我希望添加一个precommit钩子,以确保在本地完成提交(并推送)之前,每个人都有一个最新的回购.

例如,在CVS中,每个人都会在进行更改之前进行'cvs up',然后进行提交.我想强制它,所以人们不能提交更改,除非他们已经做了git pull origin master第一次(我们不会使用额外的分支)

是否有捷径可寻?欢呼任何帮助:)

git hook pre-commit-hook

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

附加文件时缺少行

我是stackoverflow和python的新手,所以这看起来很明显:

在此过程中,我想从前一过程生成的文件列表中创建一个名为database的新文件.列表中的文件非常大(大约13.6 MB).目标是使用包含所有其他行的单个文件:

database = open('current_database', 'a')

def file_apender(new):
    for line in new:
        database.write(line)

def file_join(list_of_files):
    for file in list_of_files:
        file_apender(file)
Run Code Online (Sandbox Code Playgroud)

如果我:

file_join(a_file_list)
Run Code Online (Sandbox Code Playgroud)

我得到了数据库文件,但缺少26行,最后一行未完成.这是文件的结尾:

63052300774565. 12 4 3 0 0.37 0.79 10.89 12.00 1.21 25.26 0.00 0.00 0.00 0.00
63052300774565. 12 2 0 0 0.06 0.12 2.04 2.21 0.86 5.30 0.00 0.00 0.00 0.00
63052300774565. 12 0 0 0 0.12 0.26 3.13 4.63 3.81 11.95 0.00 0.00 0.00 0.00
63052300774565. 12 2 2 0 0.06 0.15 1.35 2.39 0.00 3.94 …
Run Code Online (Sandbox Code Playgroud)

python file-io

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

sudo pip安装PIL和错误代码1

mac-cordreys-macbook-pro:~ maccordrey$ sudo pip install PIL
/usr/local/bin/pip:5: UserWarning: Module pkg_resources was already imported from /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.pyc, but /Library/Python/2.5/site-packages is being added to sys.path
  from pkg_resources import load_entry_point
/usr/local/bin/pip:5: UserWarning: Module site was already imported from /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site.pyc, but /Library/Python/2.5/site-packages is being added to sys.path
  from pkg_resources import load_entry_point
Downloading/unpacking PIL
  Running setup.py egg_info for package PIL
    /Library/Python/2.5/site-packages/setuptools/command/install_scripts.py:3: UserWarning: Module pkg_resources was already imported from /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.pyc, but /Library/Python/2.5/site-packages is being added to sys.path
      from pkg_resources import Distribution, PathMetadata, ensure_directory
    /Library/Python/2.5/site-packages/setuptools/command/install_scripts.py:3: UserWarning: Module site …
Run Code Online (Sandbox Code Playgroud)

python pip python-imaging-library

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

'int'对象不可迭代

7.3并且想知道为什么在下面的例子中字符串"racecar"被视为int类型.在此先感谢您的帮助

>>> s = "racecar"

>>> for i in len(s):

    print(s[i]) 

Traceback (most recent call last):

  File "<pyshell#9>", line 1, in <module>

    for i in len(s):

TypeError: 'int' object is not iterable
Run Code Online (Sandbox Code Playgroud)

python string int iterable

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

Python中字符串的限制排列

如何在Python中执行以下操作?

鉴于两个字符串.打印两个字符串的所有交错.交错意味着if B在A之后,它也应该在交错字符串中的A之后.ex-AB和CD ABCD ACBD ACDB CABD CADB CDAB

python permutation

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

php中的日期问题

在我的PHP应用程序中,我有这个代码:

<?php echo date("d/m/ Y ",strtotime($row["m_date"]));?>
Run Code Online (Sandbox Code Playgroud)

在其中,$row["m_date"]从数据库中获取.

问题是所有日期都打印得很完美,除了27/2/2011.它正在打印1/1/1970.

数据库中的日期很好,并在PDF中正确打印.

php mysql

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

数组上的php sort()产生错误的结果

我想排序一个看起来像这样的数组(数字顺序而不是1,10,11):

Array ( [0] => 1.jpg [1] => 10.jpg [2] => 11.jpg [3] => 111.jpg [4] => 12.jpg [5] => 12a.jpg [6] => 13.jpg [7] => 14.jpg [8] => 15.jpg [9] => 16.jpg [10] => 2.jpg [11] => 3.jpg [12] => 4.jpg [13] => 5.jpg [14] => 6.jpg [15] => 7.jpg [16] => 8.jpg [17] => 9.jpg )
Run Code Online (Sandbox Code Playgroud)

当我使用sort()时,它只是变成"1"而不是排序的数组.

码:

$this->pageLinks = sort($this->pageLinks);  // the array is a property in a class     
print_r($this->pageLinks); // want to display the sorted array …
Run Code Online (Sandbox Code Playgroud)

php arrays sorting

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

导入python的winreg模块时导入ImportError

我想使用python的winreg模块来处理windows注册表.但是当我尝试导入winreg模块时,它会给出ImportError.

Python 2.4.3 (#1, Dec 11 2006, 11:39:03) 
[GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import __winreg
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named __winreg
>>> import _winreg
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named _winreg
Run Code Online (Sandbox Code Playgroud)

我是否需要单独安装此模块?任何建议都会有用.

python winreg

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