我正在尝试在我的 ASP rest API 中实现 HATEOAS,将ReferenceResolverProvider.
问题是,根据我使用的控制器,我想使用不同的ReferenceResolvers,因为我需要对每个控制器采取不同的行为。
现在我有通用选项:
services.AddMvc()
.AddJsonOptions(option => option.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver())
.AddJsonOptions(options => options.SerializerSettings.ReferenceResolverProvider = () => new RoomsReferenceResolver<Room>())
.AddJsonOptions(options => options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects);
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
services.AddMvc()
.AddJsonOptions(option => option.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver())
.AddJsonOptions<RoomsController>(options => options.SerializerSettings.ReferenceResolverProvider = () => new RoomsReferenceResolver<Room>())
.AddJsonOptions(options => options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects);
Run Code Online (Sandbox Code Playgroud) 这样的代码有什么区别:
string path = @"c:\users\public\test.txt";
System.IO.StreamReader file = new System.IO.StreamReader(path);
char[] buffer = new char[10];
try
{
file.ReadBlock(buffer, index, buffer.Length);
}
catch (System.IO.IOException e)
{
Console.WriteLine("Error reading from {0}. Message = {1}", path, e.Message);
}
finally
{
if (file != null)
{
file.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
string path = @"c:\users\public\test.txt";
System.IO.StreamReader file = new System.IO.StreamReader(path);
char[] buffer = new char[10];
try
{
file.ReadBlock(buffer, index, buffer.Length);
}
catch (System.IO.IOException e)
{
Console.WriteLine("Error reading from {0}. Message = {1}", path, e.Message);
} …Run Code Online (Sandbox Code Playgroud) 我需要为压缩和解压缩ArraySegment对象的方法编写单元测试.这些方法中有很多奇怪的处理方法,我不需要理解.(他们也使用一些系统方法 - 我不知道他们的实现.)
问题在于如何实际测试这些东西.我可以检查具体输入的压缩方法的结果是什么Lorem ipsum dolor sit amet, consectetur adipisicing elit.- 并根据此实验创建一个测试用例,但此解决方案不测试任何边界情况.
我还可以测试在某些序列上进行压缩然后解压缩是否给出了第一个输入序列,但这不是纯粹的单元测试.
你遇到过这样的问题吗?它有什么好的解决方案吗?
c# ×3
.net ×1
asp.net ×1
asp.net-core ×1
compression ×1
hateoas ×1
testcase ×1
testing ×1
try-catch ×1
unit-testing ×1