Junit 黄瓜和杜松子有什么不同?
谁能给我解释一下和之间的区别吗 据我所知,它们都是用来测试Java代码的,尽管我不确定它们之间的区别Junit 黄瓜和杜松子有什么不同?,junit,cucumber,Junit,Cucumber,谁能给我解释一下和之间的区别吗 据我所知,它们都是用来测试Java代码的,尽管我不确定它们之间的区别 它们只是同一测试套件的不同实现,还是旨在测试不同的东西?Cucumber是您可以进行BDD行为驱动开发的工具。您可以将功能用例转换为Cumber故事。从这个意义上讲,您还可以将Cucumber作为DSL,用于功能用例文档 另一方面,JUnit用于单元测试,这将是Java中的一种方法。因此,可以使用单元测试(尽管很少)进行集成测试或完整系统测试,这是您的第一个案例。单元测试将只是单元测试。我认为C
它们只是同一测试套件的不同实现,还是旨在测试不同的东西?Cucumber是您可以进行BDD行为驱动开发的工具。您可以将功能用例转换为Cumber故事。从这个意义上讲,您还可以将Cucumber作为DSL,用于功能用例文档
另一方面,JUnit用于单元测试,这将是Java中的一种方法。因此,可以使用单元测试(尽管很少)进行集成测试或完整系统测试,这是您的第一个案例。单元测试将只是单元测试。我认为Cucumber更多地用于集成测试,而JUnit更多地用于行为测试。此外,Cucumber语法比JUnit更精确,但要复杂得多。这里您可以看到一个Cucumber测试示例:
package com.c0deattack.cucumberjvmtutorial;
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then;
import cucumber.annotation.en.When;
import cucumber.runtime.PendingException;
public class DepositStepDefinitions {
@Given("^a User has no money in their account$")
public void a_User_has_no_money_in_their_current_account() {
User user = new User();
Account account = new Account();
user.setAccount(account);
}
@When("^£(\\d+) is deposited in to the account$")
public void £_is_deposited_in_to_the_account(int arg1) {
// Express the Regexp above with the code you wish you had
throw new PendingException();
}
@Then("^the balance should be £(\\d+)$")
public void the_balance_should_be_£(int arg1) {
// Express the Regexp above with the code you wish you had
throw new PendingException();
}
private class User {
private Account account;
public void setAccount(Account account) {
this.account = account;
}
}
private class Account {
}
}
您可以看到JUnit更简单,但不一定没有那么强大:
import static org.junit.Assert.assertEquals;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class MyClassTest {
@Test(expected = IllegalArgumentException.class)
public void testExceptionIsThrown() {
MyClass tester = new MyClass();
tester.multiply(1000, 5);
}
@Test
public void testMultiply() {
MyClass tester = new MyClass();
assertEquals("10 x 5 must be 50", 50, tester.multiply(10, 5));
}
}
希望有帮助
克莱门西奥·莫拉莱斯·卢卡斯。黄瓜和朱尼特是不同的,解决不同的问题 Cucumber是一个行为驱动设计(BDD)框架,它接受用人类可读的语言(如英语)编写的“故事”或场景,并将这些人类可读的文本转换为软件测试 下面是一个黄瓜故事的例子: cucumber将知道如何将此文本转换为软件测试,以确保软件按所述方式工作。输出将告诉您故事是否真的是软件所做的,如果不是,则说明有什么不同: 下面是修复代码以使cucumber测试通过的地方: 这就是所谓的“可执行规范”,它是记录软件支持的所有功能的好方法。这与普通文档不同,因为没有相应的测试,阅读文档的人不知道文档是否是最新的 可执行规范的其他好处:
- 非程序员可以阅读和理解测试
- 非程序员可以编写测试,因为它们是纯英语的
希望这有助于让3名选民感到羞耻!对于刚接触cucumber和testunit的人来说,这是一个非常有效的问题。+1,“BDD测试也是“集成测试”,因为它们测试所有代码模块是如何协同工作的,但它们不能彻底测试所有内容”,非常有帮助的解释