我正在尝试对自定义ValueResolver(Automapper)进行单元测试,但遇到了问题,因为它强制我覆盖的方法没有直接暴露在我们必须创建的自定义对象中.我重写了受保护的方法"ResolveCore",但暴露的唯一公共方法是"Resolve",它需要一个复杂的"ResolutionResult"automapper对象作为它的输入.在真正的单元测试的过程中,我想要将这个对象/方法单独测试到其他任何东西,并且不想真正想要使用映射启动automapper来进行此测试.同样地,模拟"ResolutionResult"是不可能的,并且为每个测试设置它似乎是一个非常复杂的对象(再次需要创建/关联其他Automapper对象).
我能想出的唯一(不太理想的)解决方案(并且在Googling寻求解决方案时已经看到建议)是在类中隐藏一个暴露受保护的覆盖方法的公共方法.如果我们必须沿着这条路走,那么就这样吧,但是还有其他人有更好的解决方案,单独测试方法调用不需要修改我们试图测试的对象吗?
示例代码:
public class CustomResolver : ValueResolver<Supplier, string>
{
protected override string ResolveCore(Custom source)
{
return string.Format("{0} {1}", source.Name, source.Descripton);
}
public string UnitTestStub(Custom source)
{
return ResolveCore(source);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个需要将对象写入数据库的应用程序.
为简单起见,我想序列化对象.
但是出于同样目的所需的ObjectOuputStream只有一个构造函数,它将OutputStream的任何子类作为参数.
应该传递什么参数?
在我看来,我有以下电话.
<%= Html.EditorFor(x => x.Cost) %>
Run Code Online (Sandbox Code Playgroud)
我有一个带有以下代码的ViewModel来定义Cost.
public decimal Cost { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是,这会显示十进制值,小数点后有四位数(例如0.0000).我知道Decimal.toString("G")(MSDN)似乎解决了这个问题,但我不确定在哪里应用它.
一个解决方案似乎是创建一个局部视图"Currency.aspx".
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Decimal>" %>
<%= Html.TextBox(Model.ToString("g"), new { @class = "currency" }) %>
Run Code Online (Sandbox Code Playgroud)
并且[UIHint("Currency")]在我的视图模型.
这似乎不优雅.我认为这个问题已经在MVC框架或C#中的某个地方得到了解决,但我不知道更清洁的解决方案.
在MVC中处理编辑货币值的适当方法是什么?
我想添加一些C#"仅调试"代码,只有在调试人员请求它时才会运行.在C++中,我曾经做过类似以下的事情:
void foo()
{
// ...
#ifdef DEBUG
static bool s_bDoDebugOnlyCode = false;
if (s_bDoDebugOnlyCode)
{
// Debug only code here gets executed when the person debugging
// manually sets the bool above to true. It then stays for the rest
// of the session until they set it to false.
}
#endif
// ...
}
Run Code Online (Sandbox Code Playgroud)
我不能在C#中完全相同,因为没有本地静态.
问题:在C#中实现这一目标的最佳方法是什么?
我基本上尝试过下面的mode_rewrite规则.它最后使用斜杠,但是我想让它工作,无论它是否有一个尾部斜杠.基本上我希望它像这样,因为有些人认为它是正常的,最后有一个斜线而其他人不这样做,因此我希望它能够工作,无论它是否存在.
RewriteRule ^signup/register(.[^/]*) /signup/register.php [NC]
Run Code Online (Sandbox Code Playgroud)
基本上它会工作,http://localhost/signup/register/但如果我从最后删除/它会给出404错误.
我正在构建一个带有Java后端的基于Flash的Facebook游戏,我打算使用RESTful方法连接它们中的两个(不是持久的套接字连接).我正在使用AS3库将客户端连接到Facebook,这就是我存储会话信息的地方.但是,如何将客户端连接授权回服务器?我不能打开回调网址,因为这样可以让人们在不玩游戏的情况下操纵游戏状态.我需要确保调用来自有效的客户端和有效的会话.
目前,用户无法直接登录后端服务器 - 它们都是通过客户端前端处理的.我可以通过后端可以验证其有效性的方式将Facebook OAuth2访问令牌传递给后端吗?这应该足以信任有效的前端连接吗?
我可以做一个双腿OAuth签名请求或只是使用一个简单的共享密钥,但密钥必须与Flash客户端打包,这使得这个用例几乎无用.
有人必须解决这个问题,但我找不到它.
在我的应用程序中,我需要从URL位置下载文件.我想在对话框中(或可选地在通知区域中)显示下载的进度.我在这个问题上遇到过几个很好的资源(例如http://progrnotes.blogspot.com/2010/09/c-android.html).不幸的是,所有示例都没有提供关于如何根据用户的请求正确取消下载的明确指示.所以我的问题其实很简单:
给定在后台下载文件的asynctask(使用httpclient)并显示带有下载进度和取消按钮的对话框,如何在按下按钮时取消下载并停止后台任务?
我知道杀死线程通常不是一个好主意,所以我可能需要在后台线程中使用'cancel'-variable.如何将按钮的停止信号传递给asynctask?
问候,伊沃
我创建了一个在我的计算机上运行Just Well Enough(需要大约4秒才能完成)的方法.但是,最终用户将在远程桌面环境中使用该方法,其中相同的请求需要25-50秒才能完成.我该如何优化这个程序?
private void compareAndPopulateArrays(List<String> listOfGenIdsFromXml,
List<String> listOfGenIdsFromDB, String dburl)
throws ClassNotFoundException, SQLException {
mdbAccessor = new MDBAccessor();
for (int x = 0; x < listOfGenIdsFromXml.size(); x++) {
Boolean matching_id_found = false;
for (int y = 0; y < listOfGenIdsFromDB.size(); y++) {
if (listOfGenIdsFromXml.get(x)
.equals(listOfGenIdsFromDB.get(y)) || equalsLanguageCodeIgnore(listOfGenIdsFromXml.get(x),listOfGenIdsFromDB.get(y))) {
addNewMatchingRecognition(listOfGenIdsFromXml,
listOfGenIdsFromDB, dburl, x, y);
matching_id_found = true;
}
}
if (!(matching_id_found == true)) {
newRecognitions.add(new NewRecognition(listOfGenIdsFromXml
.get(x)));
}
}
}
private void addNewMatchingRecognition(List<String> listOfGenIdsFromXml,
List<String> listOfGenIdsFromDB, String dburl, int x, …Run Code Online (Sandbox Code Playgroud) java ×3
c# ×2
.htaccess ×1
.net ×1
android ×1
asp.net-mvc ×1
automapper ×1
azure ×1
currency ×1
database ×1
debugging ×1
deployment ×1
facebook ×1
flash ×1
friendly-url ×1
httpclient ×1
mod-rewrite ×1
ms-access ×1
nunit ×1
oauth ×1
optimization ×1
preprocessor ×1
security ×1
unit-testing ×1
wcf ×1