我想知道是否有办法比较MBUnit中的两个对象,以便在对象"看起来"相同时传递测试,即使这些是不同的实例?
例如:
[TestFixture]
class ComparisonTestFixture
{
class foo
{
public string bar;
}
[Test]
public void ComparisonTest()
{
foo foo1 = new foo()
{
bar = "baz"
};
foo foo2 = new foo()
{
bar = "baz"
};
//This assertion should be successful, but it isn't
//*** Failures ***
//Expected values to be equal.
//Expected Value & Actual Value : {foo: bar = "zzz...."}
//Remark : Both values look the same when formatted but they are distinct instances.
Assert.AreEqual(foo1,foo2);
} …Run Code Online (Sandbox Code Playgroud) 我正在将一个中型C++项目从Visual Studio 2005移植到MacOS,XCode/GCC 4.0.
我偶然发现的一个差异与从地图中删除元素有关.在Visual Studio中,我可以擦除迭代器指定的元素,并将返回值赋给迭代器以获取下一个元素的位置.这样,迭代器在擦除后不会指向某个无效地址.
换句话说,在Visual Studio中我可以这样做:
itor = m_ResourceMap.erase(itor);
在GCC 4.0中,擦除函数返回void,所以我不能这样做.这是否意味着以下映射元素向后移动,因此迭代器自动指向下一个元素,或者这是否意味着我必须在之后增加迭代器?该 在线文档STL是不是关于这个问题的非常简洁的XCode似乎并没有什么.
谢谢你的帮助,
阿德里安
我在生产Web服务器上的SQL Server 2008 Web Edition SP1上运行了一些SSRS报告.
出于某种原因,在报表查看器中查看报表时,不会向我提供CSV和XML导出.这适用于该服务器上的所有报告.
正如您所看到的,PDF,Word和Excel仍然可以正常工作,只缺少XML和CSV:

报告在服务器端呈现,因此不会出现问题.
我检查了rsreportserver.config,并且至少在<Render>节点中仍然提到了xml和csv导出格式.我不确定这是否是我需要的CSV和XML导出工作:
<Render>
<Extension Name="XML" Type="Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRendering"/>
<Extension Name="NULL" Type="Microsoft.ReportingServices.Rendering.NullRenderer.NullReport,Microsoft.ReportingServices.NullRendering" Visible="false"/>
<Extension Name="CSV" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering"/>
<Extension Name="PDF" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.PDFRenderer,Microsoft.ReportingServices.ImageRendering"/>
<Extension Name="RGDI" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.RGDIRenderer,Microsoft.ReportingServices.ImageRendering" Visible="false"/>
<Extension Name="HTML4.0" Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.Html40RenderingExtension,Microsoft.ReportingServices.HtmlRendering" Visible="false"/>
<Extension Name="MHTML" Type="Microsoft.ReportingServices.Rendering.HtmlRenderer.MHtmlRenderingExtension,Microsoft.ReportingServices.HtmlRendering"/>
<Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering"/>
<Extension Name="RPL" Type="Microsoft.ReportingServices.Rendering.RPLRendering.RPLRenderer,Microsoft.ReportingServices.RPLRendering" Visible="false" LogAllExecutionRequests="false"/>
<Extension Name="IMAGE" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRendering"/>
<Extension Name="WORD" Type="Microsoft.ReportingServices.Rendering.WordRenderer.WordDocumentRenderer,Microsoft.ReportingServices.WordRendering"/>
</Render>
Run Code Online (Sandbox Code Playgroud)
那么,这可能是什么问题,我该如何解决?
谢谢,
阿德里安
我正在将一个Windows游戏移植到Mac OS X.我想知道我应该在哪里存储游戏数据,如保存的游戏,用户配置文件等,以及如何在C++中以编程方式检索该路径?
该游戏将作为此处指定的"现代捆绑"提供
我正在寻找一种简单且无法捕获的方法来终止我的C++应用程序的Mac端口.在我使用的Windows中
TerminateProcess(GetCurrentProcess, 0);
Run Code Online (Sandbox Code Playgroud)
我可以在Mac OS X/XCode/GCC上使用的等效命令是什么?
我在很长一段时间内获得了最奇怪的调试体验.承认这有点令人尴尬,但它让我相信我的Linq查询在添加额外的Where子句时会产生更多结果.
我知道这是不可能的,所以我重构了我的违规功能加上属于它的单元测试:
[Test]
public void LoadUserBySearchString()
{
//Setup
var AllUsers = new List<User>
{
new User
{
FirstName = "Luke",
LastName = "Skywalker",
Email = "luke@jedinet.org"
},
new User
{
FirstName = "Leia",
LastName = "Skywalker",
Email = "faeryprincess@winxmail.com"
}
};
//Execution
List<User> SearchResults = LoadUserBySearchString("princess", AllUsers.AsQueryable());
List<User> SearchResults2 = LoadUserBySearchString("princess Skywalker", AllUsers.AsQueryable());
//Assertion
Assert.AreEqual(1, SearchResults.Count); //test passed!
Assert.AreEqual(1, SearchResults2.Count); //test failed! got 2 instead of 1 User???
}
//search CustID, fname, lname, email for substring(s)
public List<User> LoadUserBySearchString(string SearchString, …Run Code Online (Sandbox Code Playgroud) 如果我们想要将枚举(包含在域层中)重构为多态类,那么使用"简单"抽象方法可能是一个坏主意,如果我们要重构的所有switch和if语句都在其他层内(如业务或表示层),因为我们最终可能会在域层内引用这些层:
public abstract class MyRefactoredEnum
{
public abstract void DoSomething(IBusinnessObject aBizObject); //dependency to the biz. layer
public abstract MvcHtmlString GetImgTag(); //dependency to presentation layer
}
Run Code Online (Sandbox Code Playgroud)
(在上面的例子中,我们也可以有一个"交叉引用"问题)
我发现访问者模式(http://en.wikipedia.org/wiki/Visitor_pattern)是这个问题的有效解决方案:在域层我们只定义了MyRefactoredEnum.IVisitor接口,所有其他层都可以实施自己的访客.
唯一的问题是:当我们修改MyRefactoredEnum.IVisitor接口时(例如,因为我们添加了另一个MyRefactoredEnum的子类),我们必须修改并重新编译引用域模型的所有项目和解决方案.我们可以使用反射来解决问题(http://surguy.net/articles/visitor-with-reflection.xml),但它可能很慢......
重构枚举是否有更好的模式?
PS:对不起我糟糕的英语:)
我正在尝试将Monotouch应用程序移植到Monodroid.我的应用程序必须至少将Android 2.1作为目标,但Action Bar似乎仅适用于Android 3.0及更高版本.
iOS应用程序一直在使用标题栏,所以我正在寻找一些可以在行动之间重复使用的操作栏替换.
我有什么选择来解决这个问题?我知道有解决这个问题的原生android库(即https://github.com/johannilsson/android-actionbar),但通过JNI与它们进行通信看起来非常容易出错并且很乏味.有没有更好的解决方案?
谢谢,
阿德里安
我想将ASP.NET MVC的视图用作邮件模板引擎.为此,我使用System.ComponentModel.Component.WebClient从另一个控制器操作调用一个控制器操作,解析返回的网页并通过电子邮件发送.
在这种情况下,是否可以将当前用户的登录凭据(我使用FormsAuthentication)转发到WebClient请求的控制器操作?用户密码是加密的,因此我不能仅使用其用户名和密码创建新的NetworkCredentials实例.
c# ×3
c++ ×3
asp.net-mvc ×2
macos ×2
android ×1
asp.net ×1
enums ×1
gcc ×1
html-helper ×1
linq ×1
mbunit ×1
polymorphism ×1
sql-server ×1
ssrs-2008 ×1
stl ×1
terminate ×1
webmatrix ×1