我正在为一位朋友审查一些代码,并说他在try-finally块中使用了一个return语句.即使try块的其余部分没有,Finally节中的代码是否仍会触发?
例:
public bool someMethod()
{
try
{
return true;
throw new Exception("test"); // doesn't seem to get executed
}
finally
{
//code in question
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个批处理脚本执行任务并将输出发送到文本文件.有没有办法在控制台窗口上显示输出?
例如:
c:\Windows>dir > windows-dir.txt
Run Code Online (Sandbox Code Playgroud)
有没有办法dir
在控制台窗口中显示输出并将其放入文本文件?
我正在学习Node.js并且一直在使用Express.真的很喜欢框架;但是,我无法弄清楚如何为路线编写单元/集成测试.
能够对简单模块进行单元测试很容易,并且已经使用Mocha进行了测试 ; 但是,我的单元测试使用Express失败,因为我传入的响应对象不保留值.
正在测试的路由功能(routes/index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Run Code Online (Sandbox Code Playgroud)
单元测试模块:
var should = require("should")
, routes = require("../routes");
var request = {};
var response = {
viewName: ""
, data : {}
, render: function(view, viewData) {
viewName = view;
data = viewData;
}
};
describe("Routing", function(){
describe("Default Route", function(){
it("should provide the a title and the index view name", function(){
routes.index(request, response);
response.viewName.should.equal("index");
});
});
});
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它失败了"错误:检测到全局泄漏:viewName,data".
我哪里出错,以便我可以让这个工作?
有没有更好的方法让我在这个级别对我的代码进行单元测试?
更新 …
有没有办法查看基于IDataReader的对象中是否存在字段而不检查IndexOutOfRangeException?
本质上,我有一个方法,它采用一个基于IDataReader的对象,并创建一个强类型的记录列表.在一个实例中,一个数据读取器具有其他数据读取器不具有的字段.我真的不想重写所有提供此方法的查询,以便包含某些形式的此字段(如果我不需要).到目前为止,我能够弄清楚如何做到这一点的唯一方法是将1个唯一字段抛出到try/catch块中,如下所示.
try
{
tmp.OptionalField = reader["optionalfield"].ToString();
}
catch (IndexOutOfRangeException ex)
{
//do nothing
}
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法将"可选字段"添加到其他查询或复制加载方法,因此1版本使用可选字段而另一个不使用?
我也在2.0框架中.
我已经看到了很多关于这个主题的不同看法,所以我想是否有一个首选的方法.
有关如何针对相同解决方案的多个解决方案设置Visual Studio项目和解决方案的最佳实践吗?
例如:假设我有一个需要Web应用程序,控制台应用程序和共享业务逻辑库的任务.
在我职业生涯的某个时间,我已经在1,2和3解决方案中看到过这种情况.这是一个简单的例子; 但是,如果项目数量增长怎么办?是什么时候将它保持在一个或分开?
我正在学习F#,到目前为止我很享受.几乎所有在线示例都使用轻量级语法(#light); 但是,在大多数情况下,也会对所述示例进行评论.
使用#light启用还是禁用来学习F#会更好吗?我打算最终学习它没有开启,但我很好奇是否在开始学习它或者在我更熟悉核心语言之后应用它.
我有一个static class
与static private readonly
构件的VIA类的设置static constructor
.下面是一个简化的例子.
public static class MyClass
{
private static readonly string m_myField;
static MyClass()
{
// logic to determine and set m_myField;
}
public static string MyField
{
get
{
// More logic to validate m_myField and then return it.
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于上面的类是一个静态类,我无法创建它的实例,以便利用传递给FieldInfo.GetValue()
调用来检索并稍后设置值m_myField
.有没有一种方法我不知道要么使用FieldInfo类来获取和设置静态类的值,还是唯一的选择是重构我被要求进行单元测试的类?
有没有办法在Asp.Net应用程序中在运行时向ConfigurationManager返回的ConnectionStringCollection添加连接字符串?
我尝试了以下但是被告知配置文件是只读的.
ConfigurationManager.ConnectionStrings.Add(new ConnectionStringSettings(params));
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以在运行时执行此操作吗?我知道在设计时我可以在web.config中添加连接字符串; 但是,我希望在运行时向该集合添加一些东西.
谢谢
编辑:我试图这样做的原因之一是由于安全要求阻止我将ConnectionStrings放在web.config(甚至加密).我想在我的项目中使用会员和个人资料等元素; 但是,我正在寻找一种替代方法来做这样的,而不是编写自定义提供程序.自定义提供商并不是那么糟糕,但如果我能找到一个更简单的解决方案,我就是全力以赴.
我有一些课程,我被要求添加一些单元测试与Rhino Mocks并有一些问题.
首先,我知道RhinoMocks不允许模拟静态成员.我正在寻找我的选择(除了使用TypeMock).
我所拥有的类的示例与以下类似:
class Example1 : ISomeInterface
{
private static ISomeInterface _instance;
private Example1()
{
// set properties via private static methods
}
static Example1()
{
_instance = new Example1();
}
public static ISomeInterface Instance()
{
get { return _instance; }
}
// Instance properties
// Other Instance Properties that represent objects that follow a similar pattern.
}
Run Code Online (Sandbox Code Playgroud)
所以当我打电话给上面的课时,它看起来像这样......
Example1.Instance.SomeObject.GoDownARabbitHole();
Run Code Online (Sandbox Code Playgroud)
有没有办法让我SomeObject.GoDownARabbitHole()
在这种情况下嘲笑或嘲笑实例?
c# ×5
.net ×1
asp.net ×1
batch-file ×1
cmd ×1
express ×1
f# ×1
idatareader ×1
javascript ×1
node.js ×1
reflection ×1
rhino-mocks ×1
try-catch ×1
unit-testing ×1
web-config ×1
windows ×1