在编写单元测试时,我通常每个生产类都有一个测试类,所以我的层次结构看起来像这样:
src/main
-package1
-classA
-classB
-package2
-classC
src/test
-package1
-classATests
-classBTests
-package2
-classCTests
Run Code Online (Sandbox Code Playgroud)
但是,在进行集成测试时,组织变得不那么严格.例如,我可能有一个测试类,它同时测试classA和classB.你会把它放在哪里?那个一起测试classA,classB和classC的测试类怎么样?
此外,集成测试通常需要外部属性或配置文件.你把它们放在哪里,你是否使用任何命名约定?
在这个例子中,我想添加.loop({quantity},{sleepvalue})一个方法
我得到了这个:
this.loop(count, 500,
()=>{
var image = Screenshots.getScreenshotOfDesktop();
pictureBox.load(image);
images.Add(image);
updateTrackBar();
});
Run Code Online (Sandbox Code Playgroud)
使用此扩展方法:
public static void loop(this Object _object, int count, int delay, MethodInvoker methodInvoker)
{
for(int i=0; i < count; i++)
{
methodInvoker();
_object.sleep(delay);
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着调用语法是:
this.loop(15,500, () => {...code...});
Run Code Online (Sandbox Code Playgroud)
但理想情况下我想做的是:
()=> { ...code...}.loop(10,500);
Run Code Online (Sandbox Code Playgroud)
哪个不起作用,除非我这样做:
new MethodInvoker(()=>{...code...}).loop(10,500);
Run Code Online (Sandbox Code Playgroud)
这将适用于此版本的扩展方法:
public static void loop(this MethodInvoker methodInvoker, int count, int delay)
{
for(int i=0; i < count; i++)
{
methodInvoker();
Processes.Sleep(delay);
}
}
Run Code Online (Sandbox Code Playgroud) 说我的Android应用程序中有mapview控件.如果我知道某个纬度和经度存在地标,我如何确定该地标当前是否可在用户屏幕上查看?有没有一种方法可以获得可见区域左上角和右下角的坐标?
在MySql中处理多行的好方法是什么,因为我在与ODBC连接的客户端应用程序中有很长的键列表?
注意:我的经验主要是SQL Server,所以我知道一点,而不是专门针对MySQL.
任务是从9个表中删除一些行,但我可能有超过5,000个密钥对.
我开始时使用简单的方法循环遍历所有密钥,并针对每个表为每个密钥提交一个语句,例如:
DELETE FROM Table WHERE Key1 = 123 AND Key2 = 567 -- and 8 more tables
DELETE FROM Table WHERE Key1 = 124 AND Key2 = 568 -- and 8 more tables
DELETE FROM Table WHERE Key1 = 125 AND Key2 = 569 -- and 8 more tables
...
Run Code Online (Sandbox Code Playgroud)
除此之外,有45,000个单独的陈述,你可以想象这有点慢.
因此,在不担心我在前端使用的编程语言的情况下,提交列表的好方法是什么,以便我可以一次或至少大批量地加入并执行操作?以下是我的想法:
创建临时表并插入,然后加入.我很乐意查找MySQL的语法来创建临时表,但这是一条很好的路线吗?
假设我使用临时表,那么填充临时表的最佳方法是什么?5000条INSERT Table VALUES ()陈述?SELECT 123, 456 UNION ALL SELECT 124, 457?我刚刚测试过MySql允许这种不针对表发出的SELECT.但是如果列表太长,SQL Server最终会爆炸,所以这在MySQL中是一个好方法吗?我应该一次将列表保持几百个吗?
--CREATE …Run Code Online (Sandbox Code Playgroud)我每次运行使用MySQLdb的Python脚本时都会收到警告:
/var/lib/python-support/python2.6/MySQLdb/__init__.py:34:
DeprecationWarning: the sets module is deprecated
from sets import ImmutableSet
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我宁可不要乱用他们的lib.我在Ubuntu服务器上.任何人都知道一个简单的方法来修复该警告信息?
谢谢
更新:根据以下建议和此链接修复它:https://bugzilla.redhat.com/show_bug.cgi?id = 505611
import warnings
warnings.filterwarnings('ignore', '.*the sets module is deprecated.*',
DeprecationWarning, 'MySQLdb')
import MySQLdb
Run Code Online (Sandbox Code Playgroud) 好吧,我放弃了.我一直在搞乱所有我能想到的从目标网站检索数据,该网站有中文繁体编码信息(charset = GB2312).
我一直在使用simple_html_parser,但它似乎没有返回中文字符,事实上我得到的是一些嵌入菱形形状的怪异问号.(" ѯ ؼ ֣ "喜欢这样)
声明php文件的编码除了删除页面开头显示的一些不需要的字符外没有做任何事情.
通过声明我的意思是:
header('Content-Type', 'text/html; charset=GB2312');
Run Code Online (Sandbox Code Playgroud)
我不能得到任何用中文写的数据,也试过file_get_contents同样的运气.我可能遗漏了一些明显的东西,因为我在其他地方找不到任何相关的讨论.
提前致谢.
我之前从未使用过工厂,原因很简单,我不知道什么时候需要它们.我在业余时间一直在做一个小游戏,我决定为声音实现FMOD.我看了一个为OpenAL设计的包装器(不同的声音设置),它看起来像......
SoundObject*SoundObjectManager*SoundObjectFactory*
SoundObject基本上是每个声音对象的实例.SoundObjectManager只管理所有这些对象.这是很直接的,并且很有意义,但我没有得到工厂正在做什么或使用什么.我一直在阅读关于Factorys的内容,但仍然没有真正得到它们.
任何帮助,将不胜感激!
我正在尝试最新的StructureMap构建,以了解IoC容器等.作为我的第一次测试,我有以下课程:
public class Hospital
{
private Person Person { get; set; }
private int Level { get; set; }
public Hospital(Person employee, int level)
{
Person = employee;
Level = level;
}
public void ShowId()
{
Console.WriteLine(this.Level);
this.Person.Identify();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我像这样使用StructureMap:
static void Main()
{
ObjectFactory.Configure(x =>
{
x.For<Person>().Use<Doctor>();
x.ForConcreteType<Hospital>().Configure.Ctor<int>().Equals(23);
});
var h = ObjectFactory.GetInstance<Hospital>();
h.ShowId();
}
Run Code Online (Sandbox Code Playgroud)
所以我将Doctor对象作为第一个构造函数param传递给Hospital,我正在尝试将levelparam 设置为23.当我运行上面的代码时,我得到:
未处理的异常:StructureMap.StructureMapException:StructureMap异常代码:205缺少所请求的实例属性"level"for InstanceKey"5f8c4b74-a398-43f7- 91d5-cfefcdf120cf"
所以看起来我根本就没有设置level参数.有人能指出我正确的方向 - 如何level在构造函数中设置参数?
干杯.雅.
我正在使用一个拥有空主和多个分支的git仓库.当我做一个git pull时,它似乎只是为主人拉下来但不适用于分支.
git checkout branch; git pull在我推动之前,我发现自己必须为每个分支做.是否有我可以使用的命令或开关
拉动并应用所有分支和主人的更改?
我正在寻找一个Python库,用于使用Twisted框架编写Jabber/XMPP客户端.