我为我的项目方法创建了一个单元测试.当找不到文件时,该方法引发异常.我为此编写了一个单元测试,但是在引发异常时我仍然无法通过测试.
方法是
public string[] GetBuildMachineNames(string path)
{
string[] machineNames = null;
XDocument doc = XDocument.Load(path);
foreach (XElement child in doc.Root.Elements("buildMachines"))
{
int i = 0;
XAttribute attribute = child.Attribute("machine");
machineNames[i] = attribute.Value;
}
return machineNames;
}
Run Code Online (Sandbox Code Playgroud)
单元测试
[TestMethod]
[DeploymentItem("TestData\\BuildMachineNoNames.xml")]
[ExpectedException(typeof(FileNotFoundException),"Raise exception when file not found")]
public void VerifyBuildMachineNamesIfFileNotPresent()
{
var configReaderNoFile = new ConfigReader();
var names = configReaderNoFile.GetBuildMachineNames("BuildMachineNoNames.xml");
}
Run Code Online (Sandbox Code Playgroud)
我应该处理方法中的异常还是我错过了其他的东西?
编辑:
我传递的路径不是找到文件的路径,所以这个测试应该通过...即如果文件不存在于该路径中该怎么办.
有没有办法强制Visual Studio 2010只显示当前打开的解决方案的挂起更改?我正在处理同一项目的多个分支,并在大多数分支中更改相同的文件.每次手动检查挂起的更改并仔细检查我是否选择了我正在处理的文件是非常痛苦的...
我正在开发一个提醒应用程序,其中我正在运行后台进程,我希望始终保持运行,以便即使关闭手机,服务也应该提醒用户在特定时间安排的提醒手机开机后.
是否有可能或我需要自己管理它?
有人可以帮忙吗?
Thanx提前.
我有下表:
nid | tag_id
--------------
1 | 213
1 | 78
2 | 938
2 | 1002
2 | 8573
2 | 5
3 | 3957
3 | 487
4 | 56
Run Code Online (Sandbox Code Playgroud)
我想要检索一个nid,其中tag_id匹配多个值,例如1002,938,8573.
我从以下查询开始:
SELECT nid,GROUP_CONCAT(DISTINCT tag_id ORDER BY tag_id) tag_ids FROM table GROUP BY nid
Run Code Online (Sandbox Code Playgroud)
返回:
nid | tag_ids
--------------
1 | 78,213
2 | 5,938,1002,8573
3 | 487,3957
4 | 56
Run Code Online (Sandbox Code Playgroud)
但我还没有发现任何东西,这将允许我再次匹配tag_ids列我的值集.我需要它来匹配所有的价值观.
也许我的方法错了,很高兴看到不同的方法.
我开始处理LINQ To SQL,我尝试解决这个原始问题.我有一个非常简单的表,有两列.
我想用一些缺口值删除行.
我用这个方法:
public void DeleteSpiritUser(string nick)
{
var user = from u in _dc.Spirit_Users where u.Nick == nick select u;
using (var scope = new TransactionScope())
{
_dc.Spirit_Users.DeleteOnSubmit(user.First());
try
{
_dc.SubmitChanges();
}
catch (Exception exception)
{
throw exception;
}
scope.Complete();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我必须使用user.First()如果我想要一行,我想用LINQ选择只有一行知道IEnumerable,因为Nick是唯一的.
我发现这篇文章描述了如何找到办公室的安装路径:
http://support.microsoft.com/kb/234788/en-us
但是在文章中只有2007年的GUID,办公室2010的GUID是什么,或者我在哪里可以找到它们?
有没有办法在W3C兼容的浏览器中获取JavaScript范围对象的html字符串?
例如,假设用户选择以下内容:Hello <b>World</b>
可以使用该Range.toString()方法将"Hello World"作为字符串.(在Firefox中,也可以使用文档的getSelection方法.)
但我似乎无法找到获取内部HTML的方法.
经过一番搜索,我发现范围可以转换为DocumentFragmentObject.
但是DocumentFragments没有innerHTML属性(至少在Firefox中;没有尝试过Webkit或Opera).
这对我来说似乎很奇怪:显然应该有一些方法来访问所选项目.
我意识到我可以创建一个documentFragment,将文档片段附加到另一个元素,然后获取该innerHTML元素.
但该方法将自动关闭我选择的区域内的任何打开的标签.
除此之外,肯定有一个明显的"更好的方法",而不是将它附加到dom只是为了让它成为一个字符串.
那么,如何获取Range或DocFrag的html字符串?
我在android中上传图片时遇到问题.
我正在使用apache httpmime 4.1 lib代码是这样的:
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("image", new FileBody(new File(AndorraApplication.getPhotosPath() + "/" + entity.getFileName()), "image/jpeg"));
resp = NetworkUtils.sendHttpRequestMultipart(EXPORT_PHOTOS_URI, reqEntity);
Run Code Online (Sandbox Code Playgroud)
NetworkUtils类:
public class NetworkUtils {
public static final int REGISTRATION_TIMEOUT = 3 * 1000;
public static final int WAIT_TIMEOUT = 5 * 1000;
public static HttpResponse sendHttpRequestMultipart(String uri, MultipartEntity entity) {
HttpClient mHttpClient = new DefaultHttpClient();
final HttpParams params = mHttpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, REGISTRATION_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, WAIT_TIMEOUT);
ConnManagerParams.setTimeout(params, WAIT_TIMEOUT);
HttpPost post = new HttpPost(uri);
post.addHeader(entity.getContentType());
post.setEntity(entity);
HttpResponse resp = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用GeoIP为网站添加地理位置.我按照Django文档上的说明进行操作,但是我得到了这个错误:ImproperlyConfigured: Error importing middleware middleware: "cannot import name GeoIP" 可能缺少什么?我已将地理位置功能添加为自定义中间件,如下所示:
from django.contrib.gis.utils import GeoIP
class LocationMiddleware(object):
def process_request(self, request):
g = GeoIP()
ip = request.META.get('REMOTE_ADDR', None)
if (not ip or ip == '127.0.0.1') and
request.META.has_key('HTTP_X_FORWARDED_FOR'):
ip = request.META['HTTP_X_FORWARDED_FOR']
if ip:
city = g.city(ip)['city']
else:
# set default city
return city
Run Code Online (Sandbox Code Playgroud) 我想定义将有2个TIMESTAMP字段的表,如下所示:
CREATE TABLE `msgs` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`msg` VARCHAR(256),
`ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
Run Code Online (Sandbox Code Playgroud)
如何做到这一点避免错误:
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Run Code Online (Sandbox Code Playgroud)
关键是保持期望的行为ts_create,并ts_update在表模式.
android ×2
c# ×2
mysql ×2
django ×1
geoip ×1
geolocation ×1
http ×1
install ×1
javascript ×1
linq-to-sql ×1
ms-word ×1
office-2010 ×1
path ×1
post ×1
range ×1
selection ×1
service ×1
solution ×1
tfs2010 ×1
timeout ×1
timestamp ×1
tostring ×1
unit-testing ×1
view ×1