C#面试单元测试——编写一个方法,找出给定字符串中重复次数最多的两个字符串
我希望可以在这里问这个问题。 我在采访中被问到一个问题——标题中有描述。 例如,对于给定的字符串“ababdcabddppabab”,它将返回AB,因为它出现的次数最多。 尽管我可以回答这个问题——问题的第二部分是为这个方法编写一个单元测试,它可以测试所有可能的场景!C#面试单元测试——编写一个方法,找出给定字符串中重复次数最多的两个字符串,c#,C#,我希望可以在这里问这个问题。 我在采访中被问到一个问题——标题中有描述。 例如,对于给定的字符串“ababdcabddppabab”,它将返回AB,因为它出现的次数最多。 尽管我可以回答这个问题——问题的第二部分是为这个方法编写一个单元测试,它可以测试所有可能的场景! 有人能告诉我如何解决这个问题吗?答案是测试不同的可能性,例如: 测试AB出现的时间最长 当AB最小时进行测试 当AB与PA出现相同数量时进行测试 测试意外输入(如空字符串)的情况 可能有更多的选项,但在进入之前需要先查看代码,如验
有人能告诉我如何解决这个问题吗?答案是测试不同的可能性,例如:
可能有更多的选项,但在进入之前需要先查看代码,如验证调用了某些方法等。您应该回答一些与函数的建议行为相关的问题。例如:
[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void FindMostFrequentPair_WithNull_ThrowsArgumentNullException()
{
var pair = Utils.FindMostFrequestPair(null);
}
[TestMethod]
public void FindMostFrequentPair_WithSameFrequentPairs_ReturnsFirst()
{
var pair = Utils.FindMostFrequestPair("ABCD");
Assert.AreEqual("AB", pair);
}
等等
测试边界情况,即空字符串和空字符串、奇数字符的字符串等。也测试明显成功的情况-您的函数应该可以工作。Mark,我们的想法是相同的。我在回答中提出了几乎相同的问题:)