我从未写过单一的单元测试。但是自从我读到的每篇文章以来,他们都在谈论单元测试。我想我应该开始使用它。
但是怎么样?
有人能指出一个非常简单的单元测试hello world示例吗?不使用jUnit或类似的东西。
答案 0 :(得分:3)
如果您不想使用任何其他库,那么您必须自己做很多工作。例如,假设您有一个具有一个要测试的函数的类:
class Foo {
public int bar(int input);
}
您现在可以编写测试类:
class TestFoo {
public void testBarPositive() {
Foo foo = new Foo();
System.out.println(foo.bar(5) == 7);
}
public void testBarNegative() {
Foo foo = new Foo();
System.out.println(foo.bar(-5) == -7);
}
public static void main(String[] args) {
TestFoo t = new TestFoo();
t.testBarPositive();
t.testBarNegative();
}
}
这是一个非常基本的例子,但它向您展示了如何编写自己的单元测试。
那就是说,我强烈建议使用像JUnit这样的库。它为您提供了大量免费,并删除了您自己必须编写的大量样板代码。它还可以生成漂亮的报告(当与Cobertura结合使用时)可以为您提供相当全面的测试结果。
答案 1 :(得分:1)
我建议使用JUnit(4.4或更高版本)或TestNG。
答案 2 :(得分:0)
我建议您使用其他库。听起来你想要做的就是构建自己的单元测试库。问题在于代码的任何基本问题,您可能遇到的任何逻辑错误,您在单元测试代码中也是如此,所以是的,您的单元通过了测试,但仅仅是因为它们做你期望他们做的事情,而不是因为他们实际上应该使用你所使用的任何语言的严格标准。
假设您编写了一个比较true / false并在PHP中返回0的函数(0 == false)= true但是(0 === false)= false如果您已为方案1编码但忽略了方案2,然后编写一个单元测试,测试方案1是否有效,但忽略方案2(如果你总是以这种方式编码,你可能会这样),然后你的单元测试会根据你定义的内容传递,但仍然是错误的。