草庐IT

模拟式

全部标签

c# - 是否可以通过模拟/伪造来使丢失的锁导致测试失败?

我正在围绕Dictionary编写一个精简的包装器,该包装器设计为线程安全的。因此,需要一些锁,并且大部分逻辑都是围绕确保事物被正确锁定并以线程安全的方式访问。现在,我正在尝试对其进行单元测试。我想进行单元测试的一件大事是锁定行为,以确保它是正确的。但是,我从来没有在任何地方看到过这样做,所以我不确定该怎么做。另外,我知道我可以只使用一堆线程向墙上扔东西,但是对于这种类型的测试,不能保证它在出错时会失败。这取决于操作系统定义的线程调度行为。有哪些方法可以通过单元测试确保我的锁定行为是正确的? 最佳答案 锁定只是一个实现细节。您应该模

c# - 模拟 IRavenQueryable 并附加 Where() 表达式

我正在尝试为一个新的mvc3项目做一些基本的概念类型代码证明。我们将Moq与RavenDB结合使用。行动:publicActionResultIndex(stringid){varmodel=DocumentSession.Query().Where(f=>f.ResponsibleBusinessId==id);returnView(model);}测试:privatereadonlyFixture_fixture=newFixture();[Test]publicvoidIndex_Action_Returns_List_Of_FinancialTransactions_For_B

c# - 如何使用简单注入(inject)器模拟模块/安装程序/注册表

Autofac有模块,Windsor有Installers和StructureMapRegistries...使用SimpleInjector如何将配置逻辑打包到可重用的类中?我试过:publicinterfaceIModule{}publicclassFooModule:IModule{publicFooModule(SimpleInjector.Containercontainer){container.RegisterSingleton();container.RegisterSingleton();}}我在CompositionRoot中使用它:publicstaticvoid

c# - 如何使用 Moq 修改模拟方法的调用参数?

是否可以修改模拟方法的调用参数?特别是我希望改变buffer在以下示例中为预填充的字节数组。例子:intMockedClass.Read(byte[]buffer,intoffset,intcount)解释:打电话Read负载count从offset读取的字节数到提供的字节数组buffer.现在我想在调用Read之后填充缓冲区已在我的应用程序代码中完成。这可能吗?如果是,我将如何连续调用Read?如果可能的话,我希望连续调用每次都返回不同的缓冲区。编辑:使用Setup像这样的命令:MockedClass.Setup(x=>x.Read(It.IsAny(),It.IsAny(),It.

c# - 测试和模拟私有(private)/ protected 方法。许多帖子,但仍然无法使一个示例起作用

我看过很多关于“Mockingaprivatemethod”的帖子和问题,但仍然无法让它工作,也没有找到真正的答案。让我们忘记代码的味道,你不应该这样做等等......据我所知,我做了以下事情:1)创建了一个类库“MyMoqSamples”2)添加了对Moq和NUnit的引用3)编辑AssemblyInfo文件并添加[装配:InternalsVisibleTo(“DynamicProxyGenAssembly2”)][程序集:InternalsVisibleTo("MyMoqSamples")]4)现在需要测试一个私有(private)方法。因为它是一个私有(private)方法,所以

c# - 模拟 IEnumerable<T> 类型的 GetEnumerator() 方法

以下测试用例在rhino模拟中失败:[TestFixture]publicclassEnumeratorTest{[Test]publicvoidShould_be_able_to_use_enumerator_more_than_once(){varnumbers=MockRepository.GenerateStub();numbers.Stub(x=>x.GetEnumerator()).Return(newList{1,2,3}.GetEnumerator());varsut=newObjectThatUsesEnumerator();varcorrectResult=sut.

c# - .NET:HttpClient 使用我的接口(interface) IHttpClient 模拟它,但有一个内部对象为 NULL,它是密封的

不知道有没有人能帮忙。我已经创建了自己的IHttpClient,因此我可以使用最小起订量模拟HttpClient。工作得很好,但有一个名为DetaultRequestHeaders的内部对象,它有一个名为Authorization的属性。我在我的构造函数或我的类中设置它,它在注入(inject)的IHttpClient中接受,当然在运行时一切都按预期工作。但是使用单元测试我得到一个错误提示Objectreferencenotsettoinstance....这是因为DefaultRequestHeaders为空。现在在进一步调查之后,它似乎是HttpRequestHeaders但它是一

Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博

Python网络爬虫之如何通过selenium模拟浏览器登录微博微博登录接口很混乱,需要我们通过selenium来模拟浏览器登录。首先我们需要安装selenium,通过pip安装:```pipinstallselenium```然后我们需要下载一个浏览器驱动,推荐使用Chrome,下载地址:http://chromedriver.storage.googleapis.com/index.html,下载好后解压放到Python安装目录下的Scripts文件夹里面。接下来我们通过代码来模拟登录微博:```pythonfromseleniumimportwebdriverdriver=webdriv

c# - 没有 IoC 或依赖注入(inject)的模拟

有没有一种方法可以在单元测试中使用mock或fakes而不必使用依赖注入(inject)或反转或控制?我发现此语法可与TypeMockIsolator(http://learn.typemock.com/)一起使用。虽然它是一个商业产品,所以我希望其他框架(例如RhinoMocks)会在某个阶段引入这样的语法。///CanmockobjectsWITHOUTDEPENDENCYINJECTION.varhand=Isolate.Fake.Instance();varmouth=Isolate.Fake.Instance();Isolate.Swap.NextInstance().Wit

c# - 如何在 WPF 中模拟控制台?

我想要一些正确方向的提示,甚至是解决这个问题的现成解决方案,但我很困惑(我只是初学者/中级):我正在尝试在我的应用程序中实现SSH。SSH后端工作正常等等,但我被困在前端。什么WPF组合会为我提供一个足够的解决方案来模拟控制台?抛开一个完整的终端仿真,我很乐意将readline/writeline简单地转换成看起来像控制台的东西:-)我最好的方法是一个80x50的单个字符网格,结果是4000个单个单元格,这感觉完全是矫枉过正。另一个想法是制作一个控制台应用程序。绑定(bind)到另一个项目中的wpf-window。但是……这有可能吗?如何实现? 最佳答案