mocking-comparison-part
全部标签 我一辈子都找不到在Rhino中使用Fluent/AAA语法来验证操作顺序的正确语法。我知道如何使用老式的记录/回放语法来做到这一点:MockRepositoryrepository=newMockRepository();using(repository.Ordered()){//setsomeorderedexpectations}using(repository.Playback()){//test}任何人都可以告诉我RhinoMocks的AAA语法中的等效项是什么。如果您能为我指出一些相关文档,那就更好了。 最佳答案 试试这个
我需要做很多高性能的不区分大小写的字符串比较,并意识到我这样做的方式.ToLower().Trim()真的很愚蠢,因为所有的新字符串都被分配了所以我仔细研究了一下,这种方式似乎更可取:String.Compare(txt1,txt2,StringComparison.OrdinalIgnoreCase)这里唯一的问题是我想忽略前导或尾随空格,即Trim()但如果我使用Trim,我会遇到与字符串分配相同的问题。我想我可以检查每个字符串,看看它是StartsWith("")还是EndsWith(""),然后才修剪。或者找出每个字符串的索引、长度并传递给string.Compareoverr
像这样的命令varmockObj=newMock()varanotherObj=Utilities.DoStuff();//sometests...mockObj.Verify(foo=>foo.someMethod(anotherObj));Moq是使用身份比较还是使用.Equals()来确定someMethod()是否曾被anotherObj调用为范围?换句话说,我指示为foo.someMethod()的参数的对象是否必须与之前为验证调用的someMethod()完全相同的对象传递,还是只需要等于anotherObj? 最佳答案
我正在使用Moq来测试一些void方法的行为。使用MockBehaviour.Strict必须在Arrange步骤期间指定对模拟的每次调用。这导致许多测试没有任何Assert(或Verify)步骤。通过条件只是测试运行没有抛出异常。我错过了什么吗?Arrange,Act,Assert模式在使用严格模拟时是否不合适?是否有更语义化的方式来安排这些测试?一个简单的虚构例子......[TestClass]publicvoidDeleteUser_ShouldCallDeleteOnRepository(){//ArrangevaruserRepository=newMock(MockBeh
是否可以在Rhino-mocks3.6中使用AAA语法测试以下示例,如果方法1调用1st,然后调用方法2,然后调用方法3,在Rhino-mocks3.6中?//Assertvarmock=MockRepository.GenerateMock();//ActmyObject.Service=mock;//HowshouldIchangethisparttoensurethatRhinoMockscheckthecallorderaswell?mock.AssertWasCalled(m=>m.Method1());mock.AssertWasCalled(m=>m.Method2())
我有一个关于WPFFlowDocumentTable上的TableCell拆分策略的问题。这是一个简单的代码,可以重现问题:MainWindow.xaml.cs//////InteractionlogicforMainWindow.xaml///publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();vartable=newTable(){BorderThickness=newThickness(1),BorderBrush=Brushes.Black,CellSpacing=0};var
我正在尝试模拟一个SqlDataReaderSqlDataReaderreader=mocks.CreateMock();Expect.Call(reader.Read()).Return(true).Repeat.Times(1);Expect.Call(reader.Read()).Return(false);Expect.Call(reader.HasRows).Return(true);Expect.Call(reader.Dispose);Expect.Call(reader["City"]).Return("Boise");Expect.Call(reader["State
我正在将CodePlex中的地理坐标类集成到我的个人“工具箱”库中。此类使用float存储纬度和经度的字段。自下课GeoCoordinate工具IEquatable,我习惯性地写了Equals像这样的方法:publicboolEquals(GeoCoordinateother){if(other==null){returnfalse;}returnthis.latitude==other.latitude&&this.longitude==other.longitude;}此时我停下来考虑我正在比较浮点变量是否相等,这通常是一个禁忌。我的思考过程大致如下:我只能想象设置Latitude
我有一个自己开发的Web部件,如果我手动安装该Web部件就没问题。但是,当我按照本网站上的说明打包Web部件时:http://www.theartofsharepoint.com/2007/05/how-to-build-solution-pack-wsp.html我在日志文件中收到此错误:09/23/200814:13:03.67w3wp.exe(0x1B5C)0x1534WindowsSharePointServicesWebParts8l4dMonitorableErrorimportingWebPart.CannotimportProjectFilter.09/23/20081
我一直在使用Moq因为我过去几年的mock需要,但在看了FakeItEasy之后我想试一试。我经常想测试是否使用正确的参数调用了一个方法,但我发现使用FakeItEasy没有令人满意的方法。我有以下代码要测试:publicclassWizardStateEngine:IWizardStateEngine{privatereadonlyIWorkflowInvoker_workflowInvoker;privateList_history;publicWizardStateEngine(IWorkflowInvokerworkflowInvoker){_workflowInvoker=w