我有两个可能看起来像这样的课程
class MyClass {
var myProperty: AnotherClass?
}
class AnotherClass {
}
Run Code Online (Sandbox Code Playgroud)
通过反射,我迭代了 MyClass 的属性,当我发现 aKMutableProperty<*>为空时,我想创建该类的一个实例。现在我正在做这样的事情
val instance = MyClass()
val property = MyClass::myProperty
var subInstance = it.getter.call(instance)
if (subInstance == null) {
it.setter.call(instance, property.returnType.jvmErasure.createInstance())
}
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个可怕的黑客,需要了解内部结构并使用 Java 魔法而不是纯粹的 Kotlin,有没有合适的方法来做我想做的事?或者这是正确的方法?
我有一个Android和Android Wear应用程序,我想在自动化的现实生活场景中端到端地进行测试.我想运行两个模拟器,一个使用Android应用程序,第二个使用Wear应用程序.可能通过使用Espresso框架来控制每个设备并检查它们是否正确地同步它们的数据.乐观地说,我想插入已经存在的Instrumentation Testing框架,与Android Studio进行良好的集成.这甚至可能吗?我在文档中找不到任何内容,也没有在网上搜索.
我认为没有其他方法可以测试我的服务和多线程连接实际上正在做他们应该做的事情.也许有更好的方法?
我继承了遗留的Android项目并开始添加Robolectric 3和JUnit 4测试用例.遗憾的是,目前主要的Application类无法初始化,因为意大利面条代码和框架在Robolectric中不起作用.我想替换我的应用程序类进行测试.但在我甚至可以更新RuntimeEnviroment.application变量之前,Robolectric崩溃了.有没有办法在Robolectric中禁用清单应用程序创建?
这是我一直在努力做的事情:
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, manifest = Config.NONE)
public class TestClass {
@Before
public void setUp() {
RuntimeEnvironment.application = new Application();
}
@Test
public void testFunc() {
// some testing goes here
}
}
Run Code Online (Sandbox Code Playgroud)
但由于Parse框架,它失败了:
java.lang.RuntimeException
at org.robolectric.util.SimpleFuture.run(SimpleFuture.java:61)
at org.robolectric.shadows.ShadowAsyncTask$2.run(ShadowAsyncTask.java:96)
at org.robolectric.util.Scheduler.runOrQueueRunnable(Scheduler.java:230)
at org.robolectric.util.Scheduler.postDelayed(Scheduler.java:85)
at org.robolectric.util.Scheduler.post(Scheduler.java:72)
at org.robolectric.shadows.ShadowAsyncTask.execute(ShadowAsyncTask.java:93)
at android.os.AsyncTask.execute(AsyncTask.java)
at com.facebook.internal.Utility.loadAppSettingsAsync(Utility.java:771)
at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:167)
at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:146)
at com.parse.FacebookController$FacebookSdkDelegateImpl.initialize(FacebookController.java:187)
at com.parse.FacebookController.initialize(FacebookController.java:70)
at com.parse.ParseFacebookUtils.initialize(ParseFacebookUtils.java:108)
at com.parse.ParseFacebookUtils.initialize(ParseFacebookUtils.java:92)
at MyApplication.initParse(StrongliftsApplication.java:174)
at MyApplication.onCreate(StrongliftsApplication.java:112)
at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:140)
at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:433) …Run Code Online (Sandbox Code Playgroud) 我想通过html文本中的美味汤找到一个特定单词在网页中出现了多少次?我尝试了这个findAll函数,但只发现特定标签中soup.body.findAll的单词会在body标签中找到特定的单词,但我希望它在html文本中的所有标签中搜索该单词.另外,一旦我找到了这个词,我需要在该词之前和之后创建一个单词列表,有人可以帮我怎么做?谢谢.
android ×2
java ×1
junit ×1
jvm ×1
kotlin ×1
python ×1
python-2.7 ×1
reflection ×1
robolectric ×1
testing ×1
wear-os ×1