快速查看过去的问题,看不到类似的东西,所以这里有:
我在为这个例子选择虚拟名称时也犯了一个错误,以说明我的观点,我会重命名它们。
我有一个有JUnit测试的类:
public class CheckFilter {
@Test
public void Run_filter_test() {
//some code
}
}
然后是另一个班级:
public class CheckVideoPlays {
@Test
public void Play_video_in_full() {
//some more code here etc
}
}
最后,我如何从另一个类调用这两个测试,显然你不能扩展多个类。
public class RunAllTests {
//How do i call both
//eg
//
//Run_filter_test();
//Play_video_in_full();
}
注意:我不想打电话给班级。不想以:
运行@RunWith(Suite.class)
@ Suite.SuiteClasses({
CheckFilter.class,
CheckVideoPlays.class
})
答案 0 :(得分:1)
一些事情。
Sanatize_all_inputs
的名称更改为(java标准格式)驼峰案例,可能是sanitizeAllImports
。使用Java时,请遵守Java。ConvertAll
的类级变量。BaseTestBlammy
的另一个类级别变量)或继承(扩展类BaseTestBlammy
)来获取对BaseTestBlammy
方法的访问权。以下是一个例子:
public MyJunitTestKapow
extends BaseTestBlammy
{
private final ConvertAll convertAll;
public MyJunitTestKapow()
{
convertAll = new ConvertAll();
}
@Test
public void someTest()
{
convertAll.sanitizeAllInputs(...);
... // do the rest of the test here.
}
}
答案 1 :(得分:0)
您可以在ConvertAll.sanitize
中创建静态方法,然后在ConvertAll.Sanitise_all_inputs
测试和CheckFilter.Run_filter_test
作为更好(更易维护和更强大)的解决方案,您可以使用Sanitiser
方法创建sanitise()
类(方法可以是静态的或不是静态的)。然后,每个需要清理功能的类都会调用Sanitiser.sanitise
。从长远来看,这个解决方案可能会更好 - 你可以将参数传递给消毒方法(或者去杀毒者构造函数),杀菌者可能有一些内部状态等等。
附注:您可以考虑迁移到Junit5(基本上只是更改导入的包)。 Junit5有@DisplayName注释,声明了很好的测试方法名称(带空格)。因此,您的测试方法将遵循Java命名约定。
@Test
@DiplayName("Sanitize all inputs")
public void sanitiseAllInputs() {
//some more code here etc
}