|
|
1
37
通常,创建可用于基于状态的测试的公共属性没有错。是:这是您为启用测试场景而创建的代码,但它是否会损害您的API?是否可以想象其他客户以后会发现同样的财产有用? 特定于测试的代码和测试驱动的设计之间有一条细线。我们不应该引入除了满足测试需求之外没有其他潜力的代码,但是引入遵循普遍接受的设计原则的新代码是完全可以的。我们让测试 驾驶 我们的设计-这就是为什么我们称之为TDD:) 在我看来,向一个类添加一个或多个属性以使用户更好地检查该类通常是一件合理的事情,因此我认为您不应该忽略引入此类属性。 除此之外,我支持纳德的回答:) |
|
|
2
25
如果工厂返回具体类型,并且您保证工厂总是返回具体类型,并且不为null,那么不,没有 在测试中有很多价值。它确实允许您确保,随着时间的推移,不会违反此期望,并且不会抛出异常之类的事情。 这种测试方式只是确保,当您在未来进行更改时,您的工厂行为不会在您不知情的情况下发生更改。 如果您的语言支持反射,那么对于依赖项,可以使用反射。这并不总是最容易维护的,并且将测试与实现紧密地结合在一起。你必须决定这是否可以接受。这种方法往往非常脆弱。 但是您似乎真的试图将构造的类与调用构造函数的方式区分开来。您最好使用DI框架来获得这种灵活性。
通过
|
|
|
3
3
我们所做的是用工厂创建依赖性,并且在测试运行时使用依赖性注入框架来替代模拟工厂。然后,我们对这些模拟工厂设定了适当的期望值。 |
|
|
4
3
你总是可以用反射来检查东西。没有必要仅仅为了单元测试而公开某些内容。我发现我很少需要进行反思,这可能是一个糟糕设计的迹象。 看看您的示例代码,是的,Assert not null看起来是多余的,这取决于您设计工厂的方式,有些将从工厂返回null对象,而不是排除。 |
|
|
5
0
据我所知,您希望测试依赖项是否正确构建并传递给新实例?
(如果无法模拟ClassA,可以使用new为myClassA分配非模拟版本) |
|
|
wavesinaroom · 断言结构向量长度 1 年前 |
|
|
Tim Kirkwood · 比较空数据帧 1 年前 |
|
Kamran Khan · 使用单元测试ASP。NET核心 2 年前 |
|
|
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 2 年前 |
|
|
Ricky Mo · 角度测试如何模拟导入的const 2 年前 |
|
|
Natty · Visual Studio中缺少“代码覆盖率结果” 2 年前 |