【发布时间】:2014-03-28 10:17:46
【问题描述】:
我有一个程序集合,由于各种原因反复向用户显示消息。我最初的想法是一个基本的静态辅助方法:
public class Message
{
public static void ShowMessage(...)
{
...
该方法本身可以做各种事情(即它不仅仅是MessageBox.Show() 的包装器)。
显然,这会给测试带来问题。所以想到的下一个解决方案是使用单例模式。
我确信最简洁的方法是依赖注入,但这会带来每次我想显示消息时都必须实例化一个新的无状态对象的问题。
所以我的目标是创建一个允许单个调用公共类的结构。
Message.ShowMessage("hello");
有没有办法在保持可测试性的同时实现这一目标?
【问题讨论】:
-
but that presents the problem of having to instantiate a new stateless object each time I want to display a message- 这根本不是真的,这完全取决于您在容器中注册对象时指定的生命周期范围。
标签: c# testing dependency-injection