从Mock对象创建JToken时出现JsonSerializationException

cda*_*lto 6 c# unit-testing moq mocking json.net

我有一个以下代码行,我试图在单元测试中通过模拟某个类在内部调用数据库(而不是我的设计):

var configuration = config.SelectToken("config").ToObject<Configuration>();
Run Code Online (Sandbox Code Playgroud)

我试图模拟Configuration类并将它以及"config"属性名称添加到JObject的实例:

var mockConfig= new Mock<Configuration>();

var jToken = JToken.FromObject(mockConfig);

dynamic jsonObject = new JObject
{
    {"config", jToken }
};
Run Code Online (Sandbox Code Playgroud)

在尝试从模拟对象创建JToken时,我收到以下异常:

Newtonsoft.Json.JsonSerializationException:'Castle.Proxies.ConfigurationProxy'上已存在名为'Mock'的成员.使用JsonPropertyAttribute指定其他名称.