小编kdm*_*ray的帖子

如何编写数据库调用的单元测试

我已经接近一个新项目的开始了(喘气!)我第一次尝试将单元测试包含在我的项目中.

我自己设计一些单元测试时遇到了麻烦.我有一些方法很容易测试(传入两个值并检查预期的输出).我有代码的其他部分正在做更复杂的事情,比如对数据库运行查询,我不知道如何测试它们.

public DataTable ExecuteQuery(SqlConnection ActiveConnection, string Query, SqlParameterCollection Parameters)
{
    DataTable resultSet = new DataTable();
    SqlCommand queryCommand = new SqlCommand();
    try
    {
        queryCommand.Connection = ActiveConnection;
        queryCommand.CommandText = Query;

        if (Parameters != null)
        {
            foreach (SqlParameter param in Parameters)
            {
                 queryCommand.Parameters.Add(param);
            }
        }

        SqlDataAdapter queryDA = new SqlDataAdapter(queryCommand);
        queryDA.Fill(resultSet);
    }
    catch (Exception ex)
    {
        //TODO: Improve error handling
        Console.WriteLine(ex.Message);
    }

    return resultSet;
}
Run Code Online (Sandbox Code Playgroud)

此方法基本上包含从数据库中提取一些数据所需的所有必要部分,并返回DataTable对象中的数据.

第一个问题可能是最复杂的问题:在这样的情况下我应该测试什么?

一旦解决了问题,是否要模拟数据库组件或尝试对实际数据库进行测试.

database testing integration-testing unit-testing data-access-layer

63
推荐指数
4
解决办法
5万
查看次数

微软什么时候会结束对现有.NET Framework版本的主流支持?

我想知道微软是否支持.NET Framework 2.0,3.0,3.5.

根据开发人员产品的Microsoft Support Lifetime页面,主流支持阶段应持续5年,并将支持阶段延长5年.

我在支持生命周期索引中找到了一个.NET Framework 2.0条目,但是我无法在那里(或.NET 4.0)找到.NET 3.0和.NET 3.5的任何条目.

根据.NET framework 2.0 ,.NET 2.0的主流支持阶段将于2011年4月12日结束.

我有两个问题:

  • 考虑到.NET 3.0和.NET 3.5依赖于.NET 2.0 CLR主流对.NET 3.x的支持也将于2011年4月12日结束?

  • 如果没有,何时结束对.NET 3.0和.NET 3.5的主流支持?

.net

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

连接到.MDF的连接字符串

我在VS2008中创建了一个新项目,并在项目中添加了一个.MDF文件.这是我第一次尝试使用MDF文件和.SQLEXPRESS数据库(过去我一直使用extenal Oracle服务器).

我正在尝试记录所有内容,但我无法弄清楚用于连接.MDF文件的凭据.有一个简单的方法可以找到答案吗?

connection-string mdf sql-server-express datadirectory

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

如果将pendrive插入USB端口,如何使用c#进行检测?

有没有办法找出什么时候在局域网中谁有人插入到USB端口的pendrive?以编程方式(最好在C#中)或通过某种工具.基本上我想象一个客户端应用程序位于每个终端上并监视USB端口并将信息发送到服务器.

a.)我可以获取正在复制的文件的详细信息吗?b.)没有客户申请,有没有办法做到这一点?

编辑

我不想完全禁用USB端口.它需要有基础.基本上只是希望局域网上的用户负责地共享数据,并且知道所传输的任何数据都会受到监控和记录,以后可能会被质疑.

c# windows usb monitoring usb-flash-drive

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

SyndicationItem.Content为Null

我正在尝试将RSS提要的内容提取到可以在代码中操作的对象中.看起来.NET 3.5中的SyndicationFeed和SyndicationItem类将完成我的需要,除了一件事.每次我尝试使用SyndicationFeed类读取RSS提要的内容时,每个SyndicationItem的.Content元素都为null.

我通过FeedValidator运行我的Feed,并尝试使用来自其他几个来源的Feed,但无济于事.

XmlReader xr = XmlReader.Create("http://shortordercode.com/feed/");
SyndicationFeed feed = SyndicationFeed.Load(xr);

foreach (SyndicationItem item in feed.Items)
{
    Console.WriteLine(item.Title.Text);
    Console.WriteLine(item.Content.ToString());
}

Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

我怀疑我可能只是在某个地方错过了一个步骤,但我似乎无法找到关于如何使用这些类消费RSS提要的好教程.

编辑:感谢SLaks我已经发现问题是WordPress使用内容标签.这似乎不是WP Atom提要的问题所以我现在将其作为解决方案.谢谢SLaks!

c# rss syndication-feed syndication-item

13
推荐指数
3
解决办法
6394
查看次数

选择Google Code与SourceForge vs. Codeplex有任何固有的好处或缺点吗?

我有几个不同的项目,我想发布为开源.我一直在努力决定哪三个大型开源项目托管网站最有意义,或者我是否应该自己托管它.

这三者有任何固有的缺点或好处吗?是否有一个"最佳"的地方来举办一个项目?不同的网站对不同类型的项目更有意义吗?

open-source sourceforge codeplex google-code

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

将项目中的Web引用的名称空间更改为VS项目模板

当我向项目添加Web引用时,它会提供一个默认命名空间:com.wpdevs.myservice.这是我期望它在应用程序中使用的命名空间.

当我将using语句添加到项目时,我必须添加:

using MyProject.com.wpdevs.myservice;
Run Code Online (Sandbox Code Playgroud)

我想找到一种方法来消除必须在using语句中引用项目名称.我现在正在组合的项目注定要转换为VS项目模板,并且在那里有相当奇怪的参考,甚至有一个每个项目的参考,这不是我想在项目中拥有的东西.

vsx namespaces web-reference visual-studio-2008

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

如何使用 CSS 强制执行绝对定位和行高?

我创建了一个 jQuery Sliding Drilldown 插件,它运行得很好,除了一个部分:箭头的位置。如果我更改它们所包含的元素的字体大小/行高,它们就会移动,这对我来说没有意义。谁能告诉我为什么?行高实际上会影响元素中 0,0 的位置吗?还是我还缺少其他事情?

而且 - 这是真正的问题 - 我可以只用 CSS做我想做的事情吗?我知道我可以使用 JavaScript 来动态定位它们,但我试图避免这种情况。

这是一个非常简单的页面上的插件:

http://thomporter.github.com/jquery-sliding-ajax-drilldown/demos/basic-plain.html

如果您愿意,您还可以查看我用来生成 CSS 的Sass ,它位于存储库中:

https://github.com/thomporter/jquery-sliding-ajax-drilldown/blob/master/src/lib/css/jquery.sliding-ajax-drilldown.scss

css jquery positioning

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

如何将文本拆分为键值对?

我正在构建一个脚本来读取和解析Ruby中的markdown文件.该脚本需要能够读取和理解文件顶部的multimarkdown标头信息,以便它可以对输出执行其他操作.

标头值如下所示:

Title: My Treatise on Kumquats
Author: Joe Schmoe
Author URL: http://somedudeswebsite.me/
Host URL: http://googlesnewthing.com/
Created: 2012-01-01 09:41
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何将文本行分成一个简单的键值字典.内置拆分功能在这种情况下似乎不起作用,因为我只希望它在每行中第一次出现冒号(:)时拆分.额外的冒号将是值字符串的一部分.

如果重要的是我在OS X上使用Ruby 1.8.7.

ruby string parsing

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

如何使python_select适用于'$> python'命令?

我用macports安装了几个不同版本的python,而apple python 2.6也在运行.现在我需要在python中运行一个需要MySQLdb包支持的程序,并且这个包安装到我通过macports安装的python中.该程序告诉我没有安装MySQLdb,所以我猜这是苹果python为该程序工作.

我搜索了一些帮助,发现python_select用于在蟒蛇之间切换.但是在命令之后

$>sudo python_select python25
Run Code Online (Sandbox Code Playgroud)

当我输入时,它告诉我它为python选择了版本"python25"

$>python
Run Code Online (Sandbox Code Playgroud)

它仍然是苹果python 2.6的推出.

问题是我如何使python25(MySQLdb的那个)适用于程序而不是苹果python?

另一个重要的事情,该程序不是.py文件,需要在运行之前编译.所以我需要重新安装这个程序吗?我的Mac OS版本是Snow Leopard 10.6.

任何答案都表示赞赏.

python mysql macos

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