dependency-injection相关内容
我根据 James Still 的博客文章 使用 RabbitMQ 的真实 PubSub 消息传递. 在他的文章中,他使用一个静态类来启动队列订阅者并为队列中的事件定义事件处理程序.然后,此静态方法通过静态工厂类实例化事件处理程序类. 使用 RabbitMQ.Client;使用 RabbitMQ.Client.Events;使用系统;使用 System.Text;命名空间 NST.Web.
..
我正在编写一个开源应用程序,使用一些 Symfony 组件,并使用 Symfony Console 组件与 shell 交互. 但是,我需要注入依赖项(用于所有命令),例如 Logger、Config 对象、Yaml 解析器.我通过扩展 Symfony\Component\Console\Command\Command 类解决了这个问题.但这使单元测试变得更加困难并且看起来不正确. 我
..
我使用黄油刀库完美地注入了视图.但是当我尝试实现侦听器时,例如 onclick 我无法实现它们.以下java代码将帮助您理解我的问题. Java 代码: 公共类 LoginActivity 扩展 ActionBarActivity{@InjectView(R.id.toolbar) 工具栏工具栏;@InjectView(R.id.btn_login) 按钮登录;@覆盖protected v
..
我一直在学习依赖注入(例如 Guice),在我看来,主要驱动因素之一,可测试性,已经被 Mocking(例如 Mockito)很好地涵盖了.依赖注入和Mocking框架的区别(Ninject vs RhinoMock orMoq) 很好地总结了 Dependency Injection 和 Mockito 之间的共性,但它没有提供关于在功能重叠时使用哪种方法的指导. 我即将设计一个 API,
..
我想测试的 Java 类(称为 ServiceCaller)有这个: @Autowired @Qualifier(value="serviceA")SomeService服务A;@Autowired @Qualifier(value="serviceB")SomeService服务B; (有一个 doWork() 方法将检查条件并调用 A 或 B). 如何将每个服务的模拟注入到适当的变量
..
我是一名 Java 开发人员,开始掌握依赖注入的全部威力,我突然意识到没有办法注入静态方法.所以我开始思考:静态方法是 DI 反模式吗? 更重要的是:如果我接受依赖注入,这是否意味着我需要停止编写静态方法?我问是因为在单元测试期间没有办法模拟它们并注入模拟静态,这对我来说是一个巨大的关闭. 编辑:我知道“包装"和注入现有静态方法的常用方法是这样的: 公共类 Foo {公共静态无效 b
..
假设您正在测试类 A,它有一个 依赖注入B 的 a> 具有 C 的依赖注入. 所以你模拟 B 但它拥有的唯一构造函数需要注入C,所以你是否也必须模拟 C 并将模拟的 C 注入模拟的 B 并且只然后将其注入到 A? 如果你有 5 个连续的依赖项怎么办? 有什么选择? 我使用 Google Mock,所以具体的答案也会有所帮助. 解决方案 在这种情况下你应该通过指针而不是通过引
..
可能重复: 你如何模拟在 C# 中取出文件系统进行单元测试? 我为我的代码编写单元测试,使用 Moq 作为模拟框架. 我的代码包括对文件系统的调用,使用对 System.IO 类的直接调用.例如 File.Exists(...) 等 我想将该代码更改为更具可测试性,因此我应该有一个接口,例如 IFile,并带有相关方法,例如 Exists(string path). 我知道我可以从头
..
几天前,我看到 CoClassAttribute 以一种我以前从未想象过的方式使用. [ComImport, CoClass(typeof(Foo)), Guid("787C1303-AE31-47a2-8E89-07C7257B1C43")]接口 IFoo {无效酒吧();}类Foo:IFoo {公共无效酒吧(){Console.WriteLine("Oh retado!");}} 被用作:
..
使用模拟单元测试 conn(): app.py import mysql.connector导入操作系统,urlparse定义连接():如果“DATABASE_URL";在 os.environ 中:url = urlparse(os.environ["DATABASE_URL"])g.db = mysql.connector.connect(用户=url.用户名,密码=url.密码,主机
..
Ninject 和像 RhinoMocks 或 Moq 这样的模拟框架有什么区别?我用谷歌搜索了这个,但仍然不清楚. 解决方案 Ninject 是 .NET 的依赖注入. RhinoMocks 和 Moq 都是模拟框架. 现在两者都没有任何关系.我真的很难理解这两个,所以我试着解释一下. 依赖注入:是一种控制反转的实现(我们称之为).你不要混淆这两者.您正在控制从代码中创
..
我使用 Laravel 已经有一段时间了,我已经阅读了很多关于依赖注入的可测试代码.在谈论 Facades 和 Mocked Objects 时,我感到困惑.我看到两种模式: class Post 扩展 Eloquent {受保护的 $guarded = array();公共静态 $rules = array();} 这是我的帖子模型.我可以运行 Post::all(); 从我的博客中获取所有
..
警告:这个问题是 Laravel 4 特有的. 我之前一直在我的控制器中使用 Facades.因此我知道代码正在运行.现在由于各种原因需要引入依赖注入. 重构控制器后出现以下错误: 照亮\容器\BindingResolutionException 无法解析的依赖解析 [Parameter #0 [ $name ]]. 我不知道问题出在哪里.错误消息对我来说似乎很神秘,
..
我目前正在使用 PLINQO 从数据库中生成我的所有实体. 最近,我开始使用 StructureMap 使用依赖注入,并将其作为“分离我的关注点"学习过程的一部分.我注意到所有生成的实体类都包含使用 EntitySet(LINQ 的一部分)的高耦合属性,这使得我的实体依赖于 System.Data.Linq. 我想继续使用我的 PLINQO 生成的实体,但同时,我觉得我应该生成某种基类
..
我最近一直在将新的 MVC 框架与 StructureMap 一起使用,并且总体上取得了不错的结果,但是,我一直遇到一个非常奇怪的错误,我无法理解或想出如何解决. 这是我的架构: DBContext - linqToSql 数据上下文. IRepository - 定义数据方法的契约. IService - 定义服务方法的契约. 控制器 - 在此示例中为两个. 因此我有:
..
应用程序配置在现代 Java EE 应用程序中属于什么位置?人们有哪些最佳实践建议? 通过应用程序配置,我指的是其他盒子上的服务的连接设置,包括外部(例如 Twitter 和我们的内部 Cassandra 服务器......用于诸如主机名、凭据、重试尝试之类的东西)以及那些与业务相关的设置逻辑(人们可能想在类中存储为常量的东西,例如某些东西到期的天数等). 假设: 我们正在使用单
..
对作用域、ejb 和托管 bean 有一些疑问. 范围(javax.enterprise.context.ApplicationScope、javax.enterprise.context.SessionScope)是否仅适用于 EJB?或者它们适用于所有托管 bean?直到今天,我非常确定它适用于所有托管 bean. 在我的应用程序中,我们有: @ApplicationScoped
..
我们目前正在处理一个较旧的项目(ASP.NET Web 窗体网站),并尝试查看是否可以为其设置依赖项注入. 需要强调的是:这不是一个 Web 应用程序项目......它是旧类型的网站. 它目前的目标是 .NET 4.7.2: 到目前为止,我们已经包含了 NuGet 包: 定义了一些虚拟接口和实现:
..
我正在尝试在 webforms 项目中实现 DI,所以我在我的 UI 层中安装了 Unity.WebForms dll.一旦我做了一个 App_Start 文件夹就为我创建了一个 UnityWebFormsStart 类文件.在此文件中,有一个方法 RegisterDependencies 要求进行编辑. 注册依赖后下一步是什么?是否需要在 Global.asax 类文件中添加一些内容?我如
..
随着 .NET 4.7.2 中的变化,现在可以在 Web 窗体中注入构造函数.我已经让 Simple Injector 与 Web Forms 一起工作,但是想要一些关于是否有任何我可能遗漏的“陷阱"的输入. 首先,我从此处注册了页面本身. public static void RegisterWebPages(这个Container容器){var pageTypes =从 BuildMa
..