我有一个Web应用程序,它向DAL中的3个数据库发出请求.我正在编写一些集成测试,以确保整个功能往返实际上完成了我期望它做的事情.这与我的单元测试完全分开,只是fyi.
我打算写这些测试的方式是这样的
[Test]
public void WorkflowExampleTest()
{
(using var transaction = new TransactionScope())
{
Presenter.ProcessWorkflow();
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Presenter已经建立.问题在ProcessWorkflow方法中发挥作用,因为它调用各种存储库,而这些存储库又访问不同的数据库,而我的sql server框没有启用MSDTC,所以每当我尝试创建新的sql连接时,我都会收到错误,或者尝试更改缓存连接的数据库以定位另一个数据库.
为简洁起见,Presenter类似于:
public void ProcessWorkflow()
{
LogRepository.LogSomethingInLogDatabase();
var l_results = ProcessRepository.DoSomeWorkOnProcessDatabase();
ResultsRepository.IssueResultstoResultsDatabase(l_results);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多东西来解决这个问题.
我在列表上的第三次尝试看起来像这样:
public void LogSomethingInLogDatabase()
{
using (var transaction =
new TransactionScope(TransactionScopeOption.RequiresNew))
{
//do some database work
transaction.Complete();
}
}
Run Code Online (Sandbox Code Playgroud)
实际上我尝试的第三件事实际上是让单元测试工作,但所有完成的事务实际上都是我的数据库!所以这是一个彻头彻尾的失败,因为整个观点是不影响我的数据库.
因此,我的问题是,鉴于我已经制定的限制,还有哪些其他选择可以实现我想要做的事情?
编辑:
这就是"//做一些数据库工作"的样子
using (var l_context = new DataContext(TargetDatabaseEnum.SomeDatabase))
{
//use a SqlCommand here
//use a SqlDataAdapter inside the SqlCommand
//etc.
}
Run Code Online (Sandbox Code Playgroud)
并且DataContext本身看起来像这样
public class …Run Code Online (Sandbox Code Playgroud) 我有一个功能请求,以便以后保存用户的搜索.
现在我正在根据用户指定的内容动态构建LINQ语句.
所以我开始想知道,有一种简单的方法可以让我简单地接受用户构建的查询,并将其保存在某个地方,最好是我的数据库,以便我以后可以检索它吗?
有没有办法将查询持久化为XML或JSON,然后再重新构建查询?
我有一个类需要在它的类中使用IRepository作为一个方法.
理想情况下,我想避免将此依赖关系解析为类的构造函数,因此我在Ninject中找到了方法级注入,并想知道这是如何工作的?
我理解如何设置它.我很困惑的是如何称呼它?
例:
class SomeClassThatUsesRepository
{
[Inject]
public void QueryForSomeStuff(IRepository repository)
{
//do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在不指定IRepository的情况下调用此方法?
var someClass = Kernel.Resolve<SomeClassThatUsesRepository>();
Run Code Online (Sandbox Code Playgroud)
如果我使用构造函数会工作,但我想调用一个方法.
如何使用Ninject方法注入调用方法?
我正在将一些代码从ASPX视图引擎迁移到Razor,我遇到了障碍.
我有这个代码:
<link rel="Stylesheet" type="text/css" href="
<%=Page.ClientScript.GetWebResourceUrl
(typeof(DotNetOpenAuth.OpenId.RelyingParty.OpenIdSelector),
"DotNetOpenAuth.OpenId.RelyingParty.OpenIdSelector.css")%>" />
Run Code Online (Sandbox Code Playgroud)
这里的问题是,使用Razor,我没有Page属性.
所以我退后一步,我正在看这个想知道:在Razor中获取嵌入式资源的正确方法是什么?
我花了很多时间试图找到关于这个主题的解决方案,但除了"在帮手中包装一个新的页面"之外,我还没有找到任何其他的东西.
这是唯一的方法吗?还是有更正确的东西?
我在Firefox(版本21)的控制台中运行以下内容,我得到了我不期望的结果.
new Date(1362891600000);
var date = new Date(1362891600000);
var time = date.getHours();
new Date(date.setHours(date.getHours() + 24));
Run Code Online (Sandbox Code Playgroud)
结果真的让我失去了一个循环.
第一个日期显示为东部夏令时,而第二个日期显示为东部标准时间.这完全倒退了.IE或Chrome不会发生这种情况.
这里发生了什么?

我想知道是否有办法确保只能使用HTTPS协议运行ASP.NET应用程序
我可以使用任何代码(可能是防御性编程措施?),这可以解决问题,或者可能是一些可以完成工作的IIS/Web服务器设置.
我知道这更倾向于设计师问题的方向,但是当我面临开发需要我剪裁图像的东西时,我想我会提出一个问题.
这看起来像一个荒谬的问题,但我看看IDE(Expression Blend 2)试图找到一种方法来裁剪我的图像,但我无法弄明白.
这似乎与Joel的问题非常一致,并且在Podcast 58中进行了讨论,因为在Expression Blend中进行设计时,我是一个完整的菜鸟.我非常有兴趣找出最有效的方法来做到这一点.我找到了一篇描述你可以通过的工作流程的文章,它将产生一个作物,我在下面作为答案添加了,但我真的希望其他人知道更快(更少点击)的方式做一些琐碎的事情就这样.
有谁知道如何做到这一点?
我正在运行我的网络应用程序,我正在尝试测试系统的各个部分,以确保它们不能成功进行SQL注入.
我可以在textboxes/textareas等上执行哪些常见的SQL注入检查,这些检查可以很好地检查漏洞?
我并不担心破坏我的数据,因为我在测试台上运行它,所以如果它杀死了我的服务器或数据库就可以了.
我特意寻找可以使用的例子.我并不是真的在寻找整体技术,虽然我希望用我希望得到的例子来涵盖各种不同的技术.
这可能是一个非常简单的问题,但我找不到任何有效的方法。
我正在尝试获取 json 结果并将其写入 div 的内部 html 以查看它的外观。
我有这样的事情:
$.getJSON("someurlthatgivesmejson",
function(data){
$("#jsonmodel").html(data); // what should this be??
});
});
Run Code Online (Sandbox Code Playgroud)
更新
我能够通过使用它来显示一些文本
$("#jsonmodel").html($.param(data));
Run Code Online (Sandbox Code Playgroud)
但是,它的格式不像浏览器显示 json 结果的方式,例如 javascript 对象的结构。
我希望能够更改传递给selectable的start事件的参数,因此我基本上可以允许我的用户使用可选择的jQuery UI效果而无需按住CTRL键.
JS
$(function() {
$( "#selectable" ).bind("mousedown", function(event, ui) {
var result = $( "#select-result" ).empty();
event.metaKey = event.ctrlKey = true;
});
$( "#selectable" ).selectable();
});
Run Code Online (Sandbox Code Playgroud)
我有一个小提琴,我想在这里完成的事情:
http://jsfiddle.net/josephbulger/ZfevM/
我遇到的问题是,当我在start方法中设置事件的参数时,stop方法没有看到我正在进行的更改.
有没有办法完成我想要做的事情?
jquery ×2
asp.net ×1
asp.net-2.0 ×1
c# ×1
datetime ×1
dst ×1
events ×1
http ×1
https ×1
iis ×1
image ×1
javascript ×1
jquery-ui ×1
json ×1
linq ×1
ninject ×1
razor ×1
sql-server ×1
transactions ×1