从我看来,自从SUnit,JUnit和常用的xUnit测试框架以来,测试已经走过了很长一段路。测试框架有哪些“样式”?
我查看了RSpec和Cucumber以了解什么是“行为驱动”测试关于什么,但现在我确实想知道编写单元测试存在哪种类型的其他方法。
我没有被绑定到任何特定的语言,但更感兴趣的测试代码的一般想法和方法。
所以,我的问题是,单元测试有哪些风格不同的方法,即与“断言”不同的方法。
我举的例子:
单位试井的xUnit的风格看起来大致是这样在你的FAVORIT语言:
stack = new Stack()
assertTrue (stack.empty())
stack.push(1)
assertFalse (stack.empty())
assertEquals(1, stack.top())
RSpec的风格单元试井看起来非常像这样(大约即兴) :
describe Stack do
it "should be empty" do
Stack.new.empty?.should == true
end
it "should contain new value on top" do
stack = Stack.new
stack.push(1)
stack.empty?.should == false
stack.top().should == 1
end
end
还有其他有趣的风格,符号'DSL'吗? 当然,每种语言和框架都会有不同的主题,但是有不同的一般'主题'/风格吗?
我不知道我是否完全正确地理解你的问题。有单元测试框架作为NUnit,Visual Studio中内置的单元测试框架以及其他一些框架。这些可用于基于状态的测试。如果您还想使用基于行为的测试,则可能需要使用Rhino Mocks,MOQ,TypeMock等隔离(模拟)框架之一。此外,您可以执行集成测试,以便将多个组件一起测试。自动UI测试是另一种工具,例如soapUI用于测试Web服务(尽管我会将其看作集成测试)。 – Gorgsenegger 2012-07-21 08:11:37
我试图扩大这个问题。希望它更清楚。 – smarr 2012-07-21 09:22:27
不确定它适合你的问题,但我已经看到开发人员在他们的jUnit测试中放置'// Given','// When'和'// Then'注释来帮助他们描述前提条件,测试事件,和预期的结果。 – 2012-07-21 09:30:38