在进行单元测试时,总是很难知道你的框架有多低.
如果我们有一个直接依赖于.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"类!
其他人的想法是什么?
我正在尝试调整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>标记!
我做错了什么?
谢谢,对不起,如果很明显的话.
我正在将我的团队从旧的CVS存储库转移到使用git.我希望添加一个precommit钩子,以确保在本地完成提交(并推送)之前,每个人都有一个最新的回购.
例如,在CVS中,每个人都会在进行更改之前进行'cvs up',然后进行提交.我想强制它,所以人们不能提交更改,除非他们已经做了git pull origin master第一次(我们不会使用额外的分支)
是否有捷径可寻?欢呼任何帮助:)
我是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) 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) 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中执行以下操作?
鉴于两个字符串.打印两个字符串的所有交错.交错意味着if B在A之后,它也应该在交错字符串中的A之后.ex-AB和CD ABCD ACBD ACDB CABD CADB CDAB
在我的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中正确打印.
我想排序一个看起来像这样的数组(数字顺序而不是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) 我想使用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)
我是否需要单独安装此模块?任何建议都会有用.