6
如何对编码器进行单元测试?
我有这样的事情: public byte[] EncodeMyObject(MyObject obj) 我一直在这样的单元测试: byte[] expectedResults = new byte[3]{ 0x01, 0x02, 0xFF }; Assert.IsEqual(expectedResults, EncodeMyObject(myObject)); 编辑:我见过的两种建议是: 1)使用硬编码的期望值,如上面的示例。 2)使用解码器解码编码的字节数组并比较输入/输出对象。 我在方法1中看到的问题是它非常脆弱,并且需要很多硬编码值。 方法2的问题在于测试编码器取决于解码器是否正常工作。如果编码器/解码器在同一位置均被损坏,则测试可能会产生误报。 这些可能是测试此类方法的唯一方法。如果是这样,那很好。我在问这个问题,看看是否有针对这种测试的更好的策略。我无法透露我正在使用的特定编码器的内部。我通常问的是您将如何解决这类问题,我不认为内部问题很重要。假定给定的输入对象将始终产生相同的输出字节数组。