小编Ols*_*ius的帖子

在不使用魔术字符串的情况下将参数传递给FakeItEasy-mock?

在过去的几年里,我一直在使用Moq来满足我的嘲笑需求,但在看了FakeItEasy之后我想尝试一下.

我经常想测试一个方法是否使用正确的参数调用,但我发现没有令人满意的方法来使用FakeItEasy.

我有以下代码来测试:

    public class WizardStateEngine : IWizardStateEngine
{
    private readonly IWorkflowInvoker _workflowInvoker;
    private List<CustomBookmark> _history;

    public WizardStateEngine(IWorkflowInvoker workflowInvoker)
    {
        _workflowInvoker = workflowInvoker;
    }

    public void Initialize(List<CustomBookmark> history)
    {
        _history = history;
    }

    public WizardStateContext Execute(Command command, WizardStateContext stateContext, CustomBookmark step)
    {
        Activity workflow = new MyActivity();
        var input = new Dictionary<string, object>();
        input["Action"] = command;
        input["Context"] = stateContext;
        input["BookmarkHistory"] = _history;

        var output = _workflowInvoker.Invoke(workflow, input);

        _history = output["BookmarkHistory"] as List<CustomBookmark>;

        return output["Context"] as WizardStateContext; …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq fakeiteasy

11
推荐指数
2
解决办法
1万
查看次数

如何在c#中没有性能影响的情况下读取和设置私有字段?

RavenDB可以序列化任何给定C#对象上的所有公共,私有和受保护属性,即使没有任何序列化属性.

我知道这可以通过反射来完成,但这会产生一些性能问题.还有其他更有效的方法来实现这一目标吗?

要在.NET中使用内置序列化,需要注释或实现一些序列化接口,而RavenDB可以将任何给定对象序列化为JSON.

我对它使用的技术更感兴趣,而不是特定的RavenDB.

c# reflection performance

5
推荐指数
1
解决办法
246
查看次数

标签 统计

c# ×2

fakeiteasy ×1

moq ×1

performance ×1

reflection ×1

unit-testing ×1