我遇到了这个scala.concurrent.blocking
方法,根据Scala文档,这是......
用于指定可能阻塞的代码段,允许当前的BlockContext调整运行时的行为.正确标记阻塞代码可以提高性能或避免死锁.
我有些疑惑:
scala.concurrent.ExecutionContext.Implicits.global
执行上下文或用户创建的执行上下文?blocking {
... 包装任何可执行文件会发生什么}
?我有一个测试类和测试方法。这取决于数据提供者方法。数据提供程序方法位于测试类或其基类之一以外的不同类中。根据 TestNG 文档
如果你想把你的数据提供者放在一个不同的类中,它需要是一个静态方法或一个具有非参数构造函数的类,并且你在 dataProviderClass 属性中指定可以找到它的类
测试类:
package test;
import org.testng.Assert;
import org.testng.annotations.Test;
import dataprovider.TestDataProvider;
public class TestClass {
@Test(dataProvider = "get", dataProviderClass=TestDataProvider.class)
public void test1(String s1, String s2) {
Assert.assertEquals(s1.length(), s2.length());
}
}
Run Code Online (Sandbox Code Playgroud)
数据提供者类:
package dataprovider;
import org.testng.annotations.DataProvider;
public class TestDataProvider {
@DataProvider(name = "get")
public Object[][] testData() {
return new Object[][] {{"a", "b"},{"c", "d"}};
}
}
Run Code Online (Sandbox Code Playgroud)
Eclipse 的测试输出:
java.lang.RuntimeException: Can't invoke method public java.lang.Object[][] dataprovider.
TestDataProvider.testData() on this instance of class test.TestClass due to class mismatch
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:75) …
Run Code Online (Sandbox Code Playgroud)