单元测试也意味着测试控制器/视图?

时间:2010-08-15 19:55:04

标签: unit-testing tdd bdd

我想准确理解单元测试的含义。

据我所知,到目前为止,它意味着测试模型及其所有公共方法。

这是对的吗?

那么控制器呢?单元测试是否也意味着测试控制器/视图?

有人可以启发我。

4 个答案:

答案 0 :(得分:2)

作为一个概念的单元测试存在于MVC之外。

所以是的,您希望对所有代码进行单元测试,而不仅仅是模型。

答案 1 :(得分:2)

基本上,如果它具有非平凡的业务逻辑,那么它应该进行单元测试。

当您测试控制器时,如果您已经测试过较低级别,那么您可以模拟较低级别,以便您的测试更快,但是,一切都应该有一个测试,所有公共和受保护的方法,而不仅仅是公众的,IMO。

答案 2 :(得分:1)

单位测试顾名思义就是测试代码单元。

从理论上讲,你可以测试所有代码,但有时这很难做到。

如果控制器应该向视图输出内容,您可以测试它。

有时您可能想要创建一个模拟对象以使事情变得更容易。例如,您可以模拟DAO或HttpResponse。

答案 3 :(得分:1)

通常你的模型是'哑的',因为它不包含任何逻辑,只包含属性和状态。因此,单元测试的核心是测试您的存储库和服务,这些服务器与域对象交互并使用(如果您使用它们)汇总模型对象。

您还可以测试调用这些服务的控制器以获得完整的覆盖范围。这一切都取决于您希望测试的项目的数量。测试视图稍微有点困难,对于基于.NET的Web项目,您可以使用集成到单元测试框架中的SeleniumWatin等框架。