java - 如何使用参数化构造函数和工厂类调用接口实现两次以在一个类中运行测试?
问题描述
// Interface:
public interface MailSettingConfiguration {
@Before
public void setMailServer() throws Exception;
}
//Interface implementation1:
public class MailSettingConfigurationImplementation1 implements MailSettingConfiguration {
private static MailSettingsClient sacHelper;
@Override
public void setMailServer() throws JSONException
{
System.out.println("smtp configuration");
sacHelper = new MailSettingsClient();
sacHelper.setSmtpServer("servername", portnumber, "testname", "mailid", authentication, "", "", true);
}
}
// Interface implementation2:
public class MailSettingConfigurationImplementation2 implements MailSettingConfiguration {
private static MailSettingsClient sacHelper;
@Override
public void setMailServer() throws JSONException
{
System.out.println("smtp configuration");
sacHelper = new MailSettingsClient();
sacHelper.setSmtpServer("servername2", portnumber2, "testname2", "mailid2", authentication2, username, password, true);
}
}
// Factory implementation:
public class MailSettingClassFactory {
@Factory
public static Object[] createTestClassInstances() throws JSONException, IOException {
return new Object[] {
new TestClass1(
new MailSettingConfigurationImplementation1()),new TestClass2(new MailSettingConfigurationImplementation2())
};
}
// TestClass1 constructor
private MailSettingConfigurationImplementation1 mailSettingImpl1;
private MailSettingConfigurationImplementation2 mailSettingImpl2;
public TestClass1(MailSettingConfigurationImplementation1 mailSettingConfigurationImplementation1,MailSettingConfigurationImplementation2 mailSettingConfigurationImplementation2) throws JSONException, IOException {
mailSettingImpl1.setMailServer();
mailSettingImpl2.setMailServer();
}
// TestClass2 constructor
private MailSettingConfigurationImplementation1 mailSettingImpl1;
private MailSettingConfigurationImplementation2 mailSettingImpl2;
public TestClass2(MailSettingConfigurationImplementation1 mailSettingConfigurationImplementation1, MailSettingConfigurationImplementation2 mailSettingConfigurationImplementation2) throws JSONException,IOException {
mailSettingImpl1.setMailServer();
mailSettingImpl2.setMailServer();
}
如何使用@Factory 注解两次运行 Factory 类?
- 最初使用 setmailserver() 运行 Factory 类 - 服务器 1 实现。setmailserver() 未参数化。
- 从 2 个不同的类运行所有测试,例如:TestClass1,TestClass2
- 使用 setmailserver() 运行 Factory 类 - 服务器 2 实现。setmailserver() 未参数化。
- 从 2 个不同的类运行所有测试(与步骤 2 相同)例如:TestClass1,TestClass2
解决方案
推荐阅读
- javascript - 使用动画切换组件显示 - React
- xml - 是否可以反编译由 Saxon 编译的样式表?
- windows - Jupyter笔记本无法在Windows上打开
- javascript - 如何在没有 babel 的 Windows 10 cmd 窗口中运行 ES6 semicolumnless 代码?
- c# - UI 图像选择器混淆
- amazon-web-services - AWS Honeycode:#value!在过滤列上使用 sum() 时出错
- arrays - 将 FileInputStream 转换为数组 [字节] Scala
- c++11 - 为什么调用移动赋值
- python-3.x - 如何通过与其类型不匹配的主键搜索 Django 模型而不引发错误?
- apache-spark-2.3 - 当左侧数据较大(~1B 记录)且具有幂律且右侧数据较小(但 > 2GB)时,我是否应该启用 shufflehashjoin