如何解决测试枚举和字符串-.NET Core 3.1和xUnit
我是TDD的新手,我有一个采用filter()
和from functools import reduce
# game loop
while 1:
m = [0,1,2,3,4,5,6,7]
max = 0
imax = 0
u = map(lambda n: mountain_h = int(input()) and print(imax),m)
r = filter(lambda n: mountain_h > max,n)
s = map(lambda n: max = mountain_h and imax = i,r)
# s = reduce(lambda acc,m: acc + n,r)
的方法。阅读后,我发现测试Enum
确实不值得做,除非您在string
类中有一些方法(如果我错了,请纠正我)。
我正在测试的其他方法很简单,并且接受Enum
或Enum
检查的string
,但是当我使用此方法时,我不确定该怎么做
null
这里是empty
public string CreateLog(LoggerLevel level,string message)
{
throw new System.NotImplementedException();
}
这是我打算处理Enum
的方式,但是在public enum LoggerLevel
{
Verbose,Debug,Information,Warning,Error,Fatal
}
方法中处理预期的string
的最佳方法是什么:
enum
我当时正在考虑使用CreateLog
和[Fact]
public void CreateLog_MessageNullOrEmpty()
{
var logger = new Logger();
Assert.Throws<MessageNullOrEmptyException>(() => logger.CreateLog(enum???,null));
Assert.Throws<MessageNullOrEmptyException>(() => logger.CreateLog(enum???,""));
}
。或在测试方法中创建一个虚拟[InlineData(LoggerLevel.Verbose),""]
并将其传递。
解决这种情况的最佳方法是什么?
解决方法
我不知道我是否很好理解,但是如果在上面的测试中只考虑字符串是很重要的,则可以使用Moq包中的It.IsAny<T>
模拟枚举。
顺便说一句,如果您没有像Nullable这样定义,则Enum参数永远不会为空。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。