在过去的几年里,我一直在使用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) RavenDB可以序列化任何给定C#对象上的所有公共,私有和受保护属性,即使没有任何序列化属性.
我知道这可以通过反射来完成,但这会产生一些性能问题.还有其他更有效的方法来实现这一目标吗?
要在.NET中使用内置序列化,需要注释或实现一些序列化接口,而RavenDB可以将任何给定对象序列化为JSON.
我对它使用的技术更感兴趣,而不是特定的RavenDB.