l--*_*''' 2 .net c# nunit moq visual-studio
我将一个非静态字符串传递给MessageQueue:
public virtual MessageQueue MessageQueue { get; } = new MessageQueue(ConfigHelper.QLocation);
Run Code Online (Sandbox Code Playgroud)
QLocation是非静态的; 但是,MessageQueue需要一个静态参数.
我得到这个例外:
无法访问静态上下文中的非静态字段
我的ConfigHelper类是我的配置文件值的包装器.我可以使ConfigHelper类静态; 然而,这会使测试变得更加困难.
有没有办法处理这个问题,同时仍然保持代码可测试性?
您正试图以QLocation静态方式使用(ConfigHelper.QLocation),因为它是非静态字段(如您所写...)
试试这个:
.... = new MessageQueue(new ConfigHelper().QLocation);
Run Code Online (Sandbox Code Playgroud)
它会删除错误.
IMO,你应该MessageQueue通过这个CUT(被测试的类)C'tor注入.你的班级依赖于MessageQueue.如果你不想注入MessageQueue我提供的注入连接字符串而不是配置.
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |