模拟 DirectoryEntry 的“Properties”属性

2024-01-07

我正在尝试对一些 Active Directory 代码进行单元测试,与此问题中概述的几乎相同:

创建 DirectoryEntry 实例以供测试使用 https://stackoverflow.com/questions/5966161/create-an-instance-of-directoryentry-for-use-in-test

接受的答案建议实现一个包装器/适配器DirectoryEntry类,我有:

public interface IDirectoryEntry : IDisposable
{
    PropertyCollection Properties { get; }
}

public class DirectoryEntryWrapper : DirectoryEntry, IDirectoryEntry
{
}

问题是“特性“我的财产IDirectoryEntry模拟未初始化。尝试像这样设置模型:

this._directoryEntryMock = new Mock<IDirectoryEntry>();
this._directoryEntryMock.Setup(m => m.Properties)
                        .Returns(new PropertyCollection());

结果出现以下错误:

类型“System.DirectoryServices.PropertyCollection”没有定义构造函数

据我了解,当尝试仅使用内部构造函数实例化类时会引发此错误:

类型“...”没有定义构造函数 https://stackoverflow.com/questions/6958358/the-type-has-no-constructors-defined

我尝试为以下内容编写一个包装器/适配器PropertyCollection类,但没有公共构造函数,我无法弄清楚如何实例化或从该类继承。

那么我该如何模拟/设置“特性“ 上的财产DirectoryEntry用于测试目的的类?


感谢 Chris 的建议,这里是我最终解决方案的代码示例(我选择了他的选项 1):

public interface IDirectoryEntry : IDisposable
{
    IDictionary Properties { get; }
}

public class DirectoryEntryWrapper : IDirectoryEntry
{
    private readonly DirectoryEntry _entry;

    public DirectoryEntryWrapper(DirectoryEntry entry)
    {
        _entry = entry;
        Properties = _entry.Properties;
    }

    public void Dispose()
    {
        if (_entry != null)
        {
            _entry.Dispose();
        }
    }

    public IDictionary Properties { get; private set; }
}

使用方法如下:

this._directoryEntryMock = new Mock<IDirectoryEntry>();
this._directoryEntryMock
        .Setup(m => m.Properties)
        .Returns(new Hashtable()
        {
            { "PasswordExpirationDate", SystemTime.Now().AddMinutes(-1) }
        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模拟 DirectoryEntry 的“Properties”属性 的相关文章

  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • 为什么 C 程序使用 Scanf 给出奇怪的输出?

    我目前正在学习 C 编程 并且遇到了这个奇怪的输出 Program will try functionalities of the scanf function include
  • 如何修复错误:“检测到无法访问的代码”

    我有以下代码 private string GetAnswer private int CountLeapYears DateTime startDate return count String answer GetAnswer Respo
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • Libev,如何将参数传递给相关回调

    我陷入了 libev 中争论的境地 通常 libev 在类似的函数中接收包 接收回调 没关系 但是实际操作中 我们需要派遣一个亲戚 写回调 根据收到的包裹处理具体工作 例如 S RECV MSG pstRecvMsg S RECV MSG
  • LinkLabel 无下划线 - Compact Framework

    我正在使用 Microsoft Compact Framework 开发 Windows CE 应用程序 我必须使用 LinkLabel 它必须是白色且没有下划线 因此 在设计器中 我将字体颜色修改为白色 并在字体对话框中取消选中 下划线
  • 在 azure blob 存储中就地创建 zip 文件

    我将文件存储在 Blob 存储帐户内的一个容器中 我需要在第二个容器中创建一个 zip 文件 其中包含第一个容器中的文件 我有一个使用辅助角色和 DotNetZip 工作的解决方案 但由于 zip 文件的大小最终可能达到 1GB 我担心在进
  • 如何从 Boost.PropertyTree 复制子树

    我有一些boost property tree ptree 我需要树来删除一些具有特定标签名称的元素 例如 xml 表示源ptree如下
  • 读取依赖步行者输出

    I am having some problems using one of the Dlls in my application and I ran dependency walker on it i am not sure how to
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • 以编程方式创建 Blob 存储容器

    我有一个要求 即在创建公司时 在我的 storageaccount 中创建关联的 blob 存储容器 并将容器名称设置为传入的字符串变量 我已尝试以下操作 public void AddCompanyStorage string subDo
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • Unity3D - 将 UI 对象移动到屏幕中心,同时保持其父子关系

    我有一个 UI 图像 它的父级是 RectTransform 容器 该容器的父级是 UI 面板 而 UI 面板的父级是 Canvas 我希望能够将此 UI 图像移动到屏幕中心 即画布 同时保留父级层次结构 我的目标是将 UI 图像从中心动画
  • 如何组合两个 lambda [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中组合两个 lambda 表达式 https stackoverflow com questions 1717444 combining two lamba expressions in c
  • 如果将变量设置为等于新对象,旧对象会发生什么?

    假设我们有一个 X 类not有一个超载的operator 功能 class X int n X n 0 X int n n n int main X a 1 an object gets constructed here more code
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • jQuery 灯箱画廊

    是否存在具有标准灯箱功能的 jQuery 插件 在 灯箱 窗口中 我想在同一 灯箱 窗口中的某处 左侧 底部等 将当前图像和其余图 像显示为缩略图 ColorBox http colorpowered com colorbox 一个轻量级
  • 对 Automapper 配置文件进行单元测试

    我的确想要测试自定义逻辑CreateMap方法 我愿意NOT想要测试某些类型的映射是否存在 我该怎么做或者我需要知道哪些课程 我很感激该文件的每一个提示 Automapper 单元测试似乎很少见 public class UnitProfi
  • 计算 numpy.chararray 中字符出现次数的最快方法

    Python主义者 计算字符在字符中出现的最快方法是什么numpy character array 我正在做以下事情 In 59 for i in range 10 m input Enter A or B rr 0 i m Enter A
  • 使用 ASP MVC 下载并显示私有 Azure Blob

    我将 ASP MVC 5 Razor 与 Microsoft Azure Blob 存储结合使用 我可以使用 MVC 成功地将文档和图像上传到 Blob 存储 但我很难找到一些如何下载和显示文件的 MVC 示例 如果 blob 存储为公共文
  • ConstraintLayout 不会省略 TextView 中的长文本

    我有一个TextView在图像的右侧 我试图在图像旁边放置一些长文本 但该文本应通过在末尾添加 自动结束 然而 这是行不通的 我使用这个布局
  • Google 地图 API - geocode() 不返回纬度和经度

    我试图使用以下代码通过地址获取纬度和经度 function initialize directionsDisplay new google maps DirectionsRenderer geocoder new google maps G
  • 如何避免在factory_girl中循环创建关联模型?

    我有一个应用程序 用户可以使用多种服务登录 例如谷歌 脸书 推特等 为了促进这一点 我有一个基础User模型哪个has many Identity记录 Each Identity记录有一个provider字段 例如 Google Faceb
  • 实现幻灯片的下一个和后退按钮

    我正在尝试制作一个 php 幻灯片 我几乎完成了 我只需要实现下一个和后退按钮 我认为这很容易 但显然你不能在 php 中增加索引 sql SELECT pic url FROM pic info result conn gt query
  • 无法在 Angular 2 应用程序内提交 HTML 表单

    我试图在我的 Angular 2 beta2 应用程序中包含静态 HTML 表单 但当我点击提交按钮时它不会执行任何操作 这是我使用的 HTML
  • Jenkins代理407错误

    我在跑詹金斯 CI在使用代理访问互联网的公司网络内 我尝试在中配置代理详细信息插件 gt 高级 但即使凭据是正确的 是的 我检查了很多次 它也无法验证 测试 URL 即使在http google com http google com并返回
  • 是否可以按 3 个月的时间段对结果进行分组?

    我尝试从当月开始按 3 个月的时间段对结果进行分组 如下所示 row1 15 This should contain November September and October row2 25 This should contain Au
  • 使用 Enterprise Library 5 进行数据库日志记录

    有人知道如何使用 EL 5 0 实现数据库异常日志记录吗 Thanks 您将需要针对数据库运行脚本 以便它为您创建特定的表结构 此外 还将创建一个存储过程 您必须在跟踪侦听器的配置部分中引用该存储过程 您应该能够在此处找到此脚本文件 C E
  • ExpressJS 不会在 app.use 中触发下一个路由

    我在使用 app use 时遇到 ExpressJS 触发错误路由的问题 这是index js 文件中的代码 我在其中组合了所有路由 const app express Router express Router app use api v
  • Java Streams 是迭代器设计模式的实现吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 那么 正如标题所问的那样 Java Streams 可以被视为迭代器模式的实现吗 我们是否可以认为 stream 调用 Collection 会
  • 没有得到应用内结算的响应

    我正在我的应用程序中实现 Android 应用内计费 但 我没有从 Google play 获得 Json 响应 Override public void onClick DialogInterface dialog int which d
  • 在 Google Apps 脚本中调用 Google 表格插件?

    是否可以像调用 Apps 脚本中的函数一样调用 Google Sheets 插件 我正在尝试自动化这样的几个步骤 将数据从工作表 1 导入 附加到主工作表 1 将数据从工作表 2 导入 附加到主工作表 2 将主表 1 和 2 中的值合并 附
  • 如何在 SDL Tridion Anguilla 框架中从用户 ID 获取用户名和描述

    我为 SDL Tridion 2011 SP1 编写了 GUI 扩展 GUI 由一个额外的功能区按钮和保存组件时触发的事件处理程序组成 我的事件处理程序注册如下 PowerTools Commands ItemCommenting prot
  • 否认和注销后是否可以看到输出到标准输出?

    我已经对该程序执行了此操作 ctrl z 否认 h 1 背景1 然后注销 我现在还能看到该程序输出到标准输出的内容吗 ctrl z the program bg so it wont die when you logoff screen r
  • R 中有符号 ODE 求解器吗? (ODE = 常微分方程)

    问题 R 中有符号 ODE 求解器吗 常微分方程 常微分方程 https en wikipedia org wiki Ordinary differential equation 恐怕没有 但让我向专家确认 例如 求解 gt 5x 6 2
  • 模拟 DirectoryEntry 的“Properties”属性

    我正在尝试对一些 Active Directory 代码进行单元测试 与此问题中概述的几乎相同 创建 DirectoryEntry 实例以供测试使用 https stackoverflow com questions 5966161 cre