- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有多个测试用例,即使逻辑不同,所有测试用例的输出也必须相等。所以我在考虑如何概括它们并仅放置一次 Assert 方法。
有没有比这个更好的办法:
static public class Tests() {
private static String expected = null;
private String actual = null;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
expected = new String("My Desired Output");
}
@Before
public void setUp() {
actual = new String();
}
@Test
public void test1() throws Exception {
actual = ...
}
@Test
public void test2() throws Exception {
actual = ...
}
@After
public void tearDown() throws Exception {
assertThat(actual, is(equalTo(expected)));
}
@AfterClass
public static void tearDownAfterClass() {
}
}
运行方法:
@Test
public void runTests() {
Result result = JUnitCore.runClasses(Tests.class);
assertThat(result.getRunCount(), is(2));
assertThat(result.getFailureCount(), is(0));
}
最佳答案
是的,在 tearDown 方法中断言是个坏主意。根据 JUnit 文档,此方法存在于
Tears down the fixture, for example, close a network connection. This method is called after a test is executed.
我认为将您的期望值和实际值存储在测试类中通常不是一个好主意。这些变量是测试相关的,因此将它们存储在您的测试用例中并在测试用例中进行断言。例如:
public class FooTest {
@Test
public void testFoo() {
Object expected = // ...
Object actual = // ...
assertThat(actual, is(equalsTo(expected)));
}
}
此外,我在您的代码中看到所有测试都具有相同的预期值。改变你的测试可能是个好主意,这样返回的值总是不同的。始终只测试一个预期值可确保代码适用于此预期结果。尝试更多,可能非常不同,并尝试测试一些极端情况。
关于java - tearDown (@After) 方法断言错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707544/
public function tearDown() { $this->browse(function (Browser $browser) { $br
从Xcode 10.1(也许是10)开始,当我创建单元测试文件时,我没有调用super.tearDown()和super.setUp()。 我没有在发行说明中看到这种变化。 在文档中https://d
我想知道在 PHPUnit_Framework_TestCase 和 children 的 tearDown 方法中将变量设置为 null 是否只是一种形式 或服务于某些实际目的。 例子: prote
我不明白 FactoryBoy + Django 中的teardown 是如何工作的。 我有一个这样的测试用例: class TestOptOutCountTestCase(TestCase):
我想知道在 PHPUnit_Framework_TestCase 和 children 的 tearDown 方法中将变量设置为 null 是否只是一种形式 或服务于某些实际目的。 例子: prote
我在试用版测试套件中发现了一个问题,在出现超时之前一切正常。如果测试由于超时而失败,则永远不会调用 tearDown 函数,从而使 react 堆不干净,进而导致其余测试失败。我认为 tearDown
我试图找到我的 .Net 代码用来提醒 Visual Studios 测试失败、通过或被忽略的值。我希望能够使用它来确定我们数据库中的基本跟踪测试是否通过或失败。 但是,如果没有在每个测试的末尾放置一
我认为 tearDown() 应该在每次测试后运行,但我从日志中看到它是在 setUp() 方法之后启动的。你们能解释一下吗? public class LaunchManagerActivityTe
我有多个测试用例,即使逻辑不同,所有测试用例的输出也必须相等。所以我在考虑如何概括它们并仅放置一次 Assert 方法。 有没有比这个更好的办法: static public class Tests(
我想显式“释放”Unity 解析的对象实例。我希望 Teardown 方法应该完全用于此目的,所以我尝试了这样的方法: container.RegisterType(typeof(IMyType),
我是 selenium webdriver 的新手。我尝试在两个浏览器上运行 Testng 测试并行,但我遇到了以下错误。当尝试运行时。 package rough; import org.testn
tearDownClass() 和 tearDown() 方法有什么区别? 我在哪里可以找到两者的文档。 JUnit 的 junit.org 文档仅列出了 tearDown() 而不是 tearDow
有多种设置:创建应用程序驱动程序、创建虚拟设备、进行登录。 一些测试用例只需要应用程序驱动程序,一些需要应用程序驱动程序和登录,一些需要应用程序驱动程序和设备,其他测试用例使用所有三个。 如何制作类似
我正在尝试在失败的测试结束时截取屏幕截图 我做了一些有用的事情,但是有一个问题:它会截取失败后发生的每个测试的屏幕截图 - 例如:1.测试通过:无截图2.测试失败:截图3.测试通过:截图- 所以在第一
我有设置和拆卸方法的单元测试,如下所示: def setUp(self): self.foo = "bar" self.bar = "foo" def tearDown(self):
最近,Ned Batchelder 在 his talk at PyCon 2016注意: If you are using unittest to write your tests, definit
是否有在测试场景开始/结束时触发的函数? setUp 和 tearDown 函数在每次测试之前/之后触发。 我通常想要这个: class TestSequenceFunctions(unittest.
我们设置了一个 WCF 服务,它使用 Unity 容器来解析用于管理 Exchange 2010 Powershell 命令的实例。我们定义了一个 IExchangePowershell 接口(int
假设我有实体在其工作期间创建 SVN 分支。为了执行功能测试,我创建了多个几乎相同的方法(我使用 python unittest 框架,但问题与任何测试框架相关): class Tester(unit
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我是一名优秀的程序员,十分优秀!