【发布时间】:2017-11-07 06:02:31
【问题描述】:
尝试采用 TDD 进行开发,但在某些情况下我没有最佳选择,如何编写代码和测试它们。
以下是代码场景:
有一个公共方法说 Initialize(),它只初始化类的私有成员。如何测试此方法是否工作正常。
有一个私有方法说 DoSomething() 并被同一类 Caller1() 和 Caller2() 的 2 个公共方法调用。在为这两种方法编写单元测试时,我不能模拟 DoSomething() 因为它是私有的,但是这个方法代码将被测试两次。 在这种情况下如何编写代码/测试?
有一个公共方法 DoSomething() 被另一个公共方法 Caller() 调用。 DoSomething() 初始化一个私有成员,然后在 Caller() 中使用该成员。我可以在测试 Caller() 时模拟 DoSomething() 但无法在私有成员中设置数据。 在这种情况下如何编写代码/测试?
如果我遇到任何情况,我会更新更多场景。
【问题讨论】:
-
描述的场景不是 TDD - 因为在 TDD 中你没有私有方法或私有变量。您开始为单元的公共 API 编写测试,而不知道它的实现。您将在重构已经工作和测试过的实现期间创建私有方法和变量。
标签: unit-testing tdd moq