FitSharp 中的 MemberMissingException
MemberMissingException in FitSharp
在 DoFixture
中使用 SUT 探索其行为时,第一次调用夹具方法成功,但在调用 SUT 方法后失败:
public class ConfigurationCharacterization : fitlibrary.DoFixture
{
ConfigurationDelegator cd = new ConfigurationDelegator();
public ConfigurationCharacterization()
{
mySystemUnderTest = cd;
}
public int AmountOfConfigsLoaded()
{
return cd.GetAllConfigs().Count;
}
}
//delegates calls to the static methods of Configuration
public class ConfigurationDelegator : Configuration
{
public new void Clear()
{
Configuration.Clear();
}
public new Configuration GetSingletonByIdentifier(string ident)
{
return Configuration.GetSingletonByIdentifier(ident);
}
public new List<Configuration> GetAllConfigs()
{
return Configuration.GetAllConfigs();
}
}
Runner.exe
、fit.dll
和 fixture dll 都位于同一个文件夹中。
正如在 this github issue 上指出的那样,GetSingletonByIdentifier
returns 一个 Configuration
对象被包裹在 DoFixture 中并处理 [=19= 的剩余部分]. Amount of Configs Loaded
的下一次调用然后尝试访问 class Configuration
的相应方法,这不存在,因此出现错误。
在 DoFixture
中使用 SUT 探索其行为时,第一次调用夹具方法成功,但在调用 SUT 方法后失败:
public class ConfigurationCharacterization : fitlibrary.DoFixture
{
ConfigurationDelegator cd = new ConfigurationDelegator();
public ConfigurationCharacterization()
{
mySystemUnderTest = cd;
}
public int AmountOfConfigsLoaded()
{
return cd.GetAllConfigs().Count;
}
}
//delegates calls to the static methods of Configuration
public class ConfigurationDelegator : Configuration
{
public new void Clear()
{
Configuration.Clear();
}
public new Configuration GetSingletonByIdentifier(string ident)
{
return Configuration.GetSingletonByIdentifier(ident);
}
public new List<Configuration> GetAllConfigs()
{
return Configuration.GetAllConfigs();
}
}
Runner.exe
、fit.dll
和 fixture dll 都位于同一个文件夹中。
正如在 this github issue 上指出的那样,GetSingletonByIdentifier
returns 一个 Configuration
对象被包裹在 DoFixture 中并处理 [=19= 的剩余部分]. Amount of Configs Loaded
的下一次调用然后尝试访问 class Configuration
的相应方法,这不存在,因此出现错误。