1
2
实际上,您无法对方法进行单元测试,因为它依赖于外部API( 文件系统,日期时间 ). 所以你应该做的是独立的逻辑和与外部资源的集成,它可能看起来像这样:
我认为接口的实现
现在,您可以为
|
2
1
如果你想对你展示的方法进行单元测试,那么它目前的编写方式会很困难,但我们可以模拟
之后,只需使用如下库模拟这两个类: https://github.com/Moq/moq4/wiki/Quickstart 编写单元测试,测试所需的逻辑。 编辑:正如其他人指出的,日期时间。现在嘲笑可能也是件好事,但也可以用同样的方式。 |
3
1
另一种可能性是使用静态助手类
然后只使用助手类:
通过这种方式,您可以在单元测试中更改方法。
这适用于大多数静态助手方法,并且更容易重构每个类,以便可以注入。 缺点
正面
更新评论中的评论:
作为替代系统方法是可行的
|
4
1
100%的解决方案是,必须注入大量这类物质,因为它要么有副作用,要么是非决定性的:
例如,在生产环境中注入datetimeservice返回datetime,在测试环境中注入datetimeservice总是返回某个固定日期。并使用模拟框架检查delete方法有时被调用,而其他时候没有被调用。 |
5
0
代码的完美解决方案是创建一个接口,其中包含所有文件操作的方法,然后模拟这些方法 但您也可以在示例类中为这些文件操作创建虚拟方法,并在单元测试中模拟该方法 下面是实际代码的代码实现
下面是你们的单元测试课
我知道这不是很好的设计实践,但我只想向大家展示一种使用虚拟方法进行单元测试的不同方式。 最好的方法是创建一个接口,并模拟我创建的虚拟接口方法 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |