在将一些测试从JUnit迁移到TestNG时,我遇到了一个问题,因为这些测试框架如何处理它们的Test类实例.
JUnit为每个测试方法创建一个Test类的新实例.所以我看到的一个常见模式是:
public class MyTest {
private Stream inputData;
@Before
public void setUp() {
// Set up some data in (non-static) instance fields
// This data is isolated per test
inputData = createInputDataStream();
}
@Test
public void testStuff() {
// Use the data from the instance fields
doStuff(inputData);
}
@After
public void tearDown() {
// Clean up the data from the instance fields
closeInputDataStream(inputData);
}
}
Run Code Online (Sandbox Code Playgroud)
相比之下,TestNG对所有测试方法使用Test类的单个实例.所以上面的模式不起作用!由于数据存储在实例字段中,因此不再隔离这些值.如果启用并行执行,这可能会导致覆盖数据中期测试.
那么我如何使用TestNG做到这一点?是否有存储将其分离出每个数据的方式@BeforeMethod- @Test- @AfterMethod元组?
我可以在@Test自己内部完成所有3个步骤,但这需要try...finally在每个测试中添加笨拙的块.我也试过使用ITestContext …
我有一个WPF项目,项目向导添加了一个启动画面.在同一个启动画面上,我想添加一个进度条样式表.有人知道怎么做吗?
我正在使用Cordova GA插件来跟踪事件,但是当我在浏览器中进行测试时,我会继续:
ReferenceError:未定义插件
我尝试了很多方法来检查插件是否已经定义,但它仍然会抛出此错误.在调用函数之前,如何正确检查插件是否已定义?
假设我有以下示例实体 - 一个是@Embeddable嵌入在另一个中的@Entity:
@Embeddable
public class ContactInfoEntity {
@Column
private String phone;
@Column
private String zipCode;
}
@Entity
@Table(name = "EMPLOYEE")
public class EmployeeEntity {
@Id
@Column(name = "EMPLOYEE_ID")
private Long employeeId;
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "phone",
column = @Column(name = "EMPLOYEE_PHONE")),
@AttributeOverride(name = "zipCode",
column = @Column(name = "EMPLOYEE_ZIP_CODE"))
})
private ContactInfoEntity employeeContactInfo;
}
Run Code Online (Sandbox Code Playgroud)
openjpa-maven-plugin 生成的元模型类只包含一个employeeContactInfo变量,而不包含@AttributeOverride列。
现在假设我想这样做:
选择
EMPLOYEE_ID和EMPLOYEE_PHONE其中EMPLOYEE_ZIP_CODE等于“123456”
我如何将其创建为CriteriaQuery?
CriteriaBuilder cb = entityManager.getCriteriaBuilder(); …Run Code Online (Sandbox Code Playgroud) 我有一个用于 JSON 序列化的简单类。为此,外部接口使用Strings,但内部表示不同。
public class TheClass {
private final ComplexInfo info;
public TheClass(String info) {
this.info = new ComplexInfo(info);
}
public String getInfo() {
return this.info.getAsString();
}
// ...more stuff which uses the ComplexInfo...
}
Run Code Online (Sandbox Code Playgroud)
我在 Kotlin 中工作(不确定是否有更好的方法)。但非 val/var 构造函数阻止我使用data.
/*data*/ class TheClass(info: String) {
private val _info = ComplexInfo(info)
val info: String
get() = _info.getAsString()
// ...more stuff which uses the ComplexInfo...
}
Run Code Online (Sandbox Code Playgroud)
我如何让它作为一个工作data class?
在我的项目中,我需要构建一个类似iGoogle的页面.该页面将具有多个拖放小部件,每个小部件都是一个单独的应用程序.
任何建议/链接?
我在尝试从工作簿中选择和导出所有图片时遇到问题。我只想要照片。我需要选择并将它们全部保存为:“照片 1”、“照片 2”、“照片 3”等,位于工作簿的同一文件夹中。
我已经尝试过这段代码:
Sub ExportPictures()
Dim n As Long, shCount As Long
shCount = ActiveSheet.Shapes.Count
If Not shCount > 1 Then Exit Sub
For n = 1 To shCount - 1
With ActiveSheet.Shapes(n)
If InStr(.Name, "Picture") > 0 Then
Call ActiveSheet.Shapes(n).CopyPicture(xlScreen, xlPicture)
Call SavePicture(ActiveSheet.Shapes(n), "C:\Users\DYNASTEST-01\Desktop\TEST.jpg")
End If
End With
Next
End Sub
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Spring Cloud从Cloud Foundry应用程序中使用通用REST服务.
此服务使用Spring Boot创建,如下所示:
package com.something;
@RestController
public class DemoServiceController {
@RequestMapping("/sayHi")
public String sayHi() {
return "Hello!";
}
}
Run Code Online (Sandbox Code Playgroud)
这很好 - 我可以访问http://www.example.com/srv/demo/sayHi并获得"你好!" 背部.
接下来,我使用CF-CLI创建了一个用户提供的服务实例,并将其绑定到我的应用程序.我现在可以看到绑定的服务了VCAP_SERVICES.
cf cups my-demo-service -p '{"url":"http://www.example.com/srv/demo/"}'
cf bs my-demo-app my-demo-service
Run Code Online (Sandbox Code Playgroud)
接下来,描述在这里,我加入这个bean到我的应用程序的Spring配置,用connector-type一套我原来的控制器(我对它的引用以及).
<cloud:service id="myDemoService"
service-name="my-demo-service"
connector-type="com.something.DemoServiceController"
/>
Run Code Online (Sandbox Code Playgroud)
现在,当我自动连接"myDemoService"到我的应用程序时,
@Autowired
private DemoController myDemoService;
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
找不到指定类型的服务.
我已确保包含所有必需的依赖项,包括spring-cloud-spring-service-connector和spring-cloud-cloudfoundry-connector.
这里出了什么问题?我给出了错误的bean参数吗?任何帮助深表感谢.
我不知道突然发生了什么.我重新启动了我的Idea工作区,它弹出以下错误:
无法转换项目:C:\ workspace_IntelliJ\Main \new-webapp.idea\workspace.xml:第1行出错:prolog中不允许使用内容.
这个错误是什么意思?我检查了我的workspace.xml.每当我尝试在编辑器中打开它时,它会显示以下内容(我相信它已被破坏):
nulnulnul
Run Code Online (Sandbox Code Playgroud)
我不知道要改变什么以及如何解决这个问题.任何有关这方面的帮助都会很棒!
我的k8s命名空间包含一个Secret在部署时(由svcat)创建的,因此这些值事先未知。
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: my-database-credentials
data:
hostname: ...
port: ...
database: ...
username: ...
password: ...
Run Code Online (Sandbox Code Playgroud)
A Deployment需要以略有不同的格式注入这些值:
...
containers:
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: my-database-credentials
key: jdbc:postgresql:<hostname>:<port>/<database> // ??
- name: DATABASE_USERNAME
valueFrom:
secretKeyRef:
name: my-database-credentials
key: username
- name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: my-database-credentials
key: password
Run Code Online (Sandbox Code Playgroud)
在DATABASE_URL需要的组成了hostname,port从以前定义的秘密“database`。
有什么办法可以做这个组合吗?
java ×4
angularjs ×1
cordova ×1
criteria ×1
criteria-api ×1
data-class ×1
excel ×1
export ×1
ide ×1
image ×1
javascript ×1
jpa ×1
junit ×1
kotlin ×1
kubernetes ×1
openjpa ×1
spring ×1
spring-cloud ×1
spring-mvc ×1
testng ×1
unit-testing ×1
vba ×1
widget ×1
wpf ×1
xml ×1