首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们应该使用TDD自动测试spring上下文吗?

我们应该使用TDD自动测试spring上下文吗?
EN

Stack Overflow用户
提问于 2012-08-22 00:24:07
回答 1查看 525关注 0票数 3

我在一个个人项目上使用TDD。

由于我不应该在没有失败测试的情况下编写任何东西(代码、XML配置、SQL等等),所以我想知道如果我想设置spring,我可以编写什么样的“单元”测试(可能更像是集成测试)。

让我们说,我想在Springcontext.xml文件中编写类似的内容:

代码语言:javascript
复制
<context:component-scan base-package="com.abc.controllers" />

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

你能为“上下文:组件扫描”添加一个测试吗?

那么您应该在bean“/can”上测试什么呢?

下面是我为测试编写的一些代码:

代码语言:javascript
复制
package com.abc.test.integration;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.servlet.view.UrlBasedViewResolver;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "file:web/WEB-INF/spring-servlet.xml" })
public class SpringServletContextConfigurationTest {

    @Autowired
    private ApplicationContext applicationContext;

    @Test
    public void TestControllerContextConfigurationIsNotNull() {
        assertNotNull(applicationContext);
    }

    @Test
    public void TestViewBeanResolverExists() {
        assertEquals(true, applicationContext.containsBean("viewResolver"));
    }

}

关于这个“设置”还有什么可以测试的吗?

EN

回答 1

Stack Overflow用户

发布于 2013-02-17 14:55:30

拜托,每当你听到有人说:

“不要在没有失败测试的情况下编写任何产品代码”

要么无视他们,要么照我所做的去做,想象他们(正确)说:

“不要在没有失败测试的情况下编写任何域逻辑”。

请不要担心您的Spring配置。如果你搞错了,你猜怎么着?当您尝试使用它时,您的应用程序将无法工作。如果发生这种情况,您只需进行修复并继续前进。世界上没有任何考验能拯救你。你把这个关于TDD的问题贴上了标签。这里有一个秘密,TDD与测试没有什么关系。您可以获得一套自动测试来捕获回归,这是一个额外的好处。TDD比其他任何东西都更多地是一个设计过程。无论您自动化了多少,手动测试仍然是必需的

如果您有一些端到端的测试,这些测试只是充当烟雾试验,那么一旦您破坏了Spring配置,您就会注意到。只需改变您的源代码管理,您将立即看到您所做的更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12064857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档