class SharedPreferenceHandler(sharedPrefs: SharedPreferences) {
companion object {
var mInstance: SharedPreferenceHandler = SharedPreferenceHandler(getPrefs())
private fun getPrefs(): SharedPreferences {
return Application.mInstance.getSharedPreferences(
"myApp", Context.MODE_PRIVATE)
}
fun getInstance(): SharedPreferenceHandler {
return mInstance
}
}
private var sharedPreferences = sharedPrefs
var accessToken: String?
get() = sharedPreferences.getString(SharedPreference.ACCESS_TOKEN.name, null)
set(token) = sharedPreferences.edit().putString(SharedPreference.ACCESS_TOKEN.name, token).apply()
}
以下是presenter中调用的方法:
override fun reload(vm: ViewModel) {
super.updateViewModel(vm) {
//some stuffs
}
}
下面是我的测试方法:
@Test
public void reload() {
when(SharedPreferenceHandler.Companion.getMInstance().getAccessToken()).thenReturn("234234234234234");
presenter.reload(viewModel);
}
在Super.UpdateViewModel(vm)的处理程序中,我调用“SharedPreferenceHandler.MinStance.AccessToken!!)”
在我的测试方法中有可能得到这一点吗?
您不应该这样测试您的代码。您应该为要模拟的类创建一个接口:
interface MySharedPreferences {
fun getAccessToken(): String
}
让SharedPreferencesHandler实现此接口。然后在presenter(或其他您要测试的类)中,将依赖项(例如,通过构造函数或框架(如dagger/kodein))注入到对象中。那么就有可能轻松地模拟这个接口。我假设在创建您测试类之前在@中-然后只是作为param传递您被嘲弄的SharedPreferencesHandler。
用静态依赖项测试东西是可能的,但很棘手(很多人认为静态依赖项是反模式的)。如何做到这里描述:如何android单元测试和模拟一个静态方法
class MyPresenter(val sp: MySharedPreferences) {
/* some code here */
fun validateToken() {
if (sp.getAccessToken() == "") throw new Exception()
}
}
class MyTest() {
@Mock lateinit var sharedPreferencesMock: MySharedPreferences
lateinit var instance: MyPresenter
@Before
fun setUp() {
instance = MyPresenter(sharedPreferencesMock)
}
@Test
fun testSomething() {
`when`(sharedPreferencesMock.getAccessToken()).thenReturn("myAccessToken")
/* here is your test body */
}
}
我有一个spring boot应用程序,它有一个endpoint测试配置类和一个单元测试来测试我的http客户端。我正在尝试从应用程序中获取服务器地址和端口。位于我的src/测试中的属性。(所有类都在我的src/测试中。) 这是我的配置类代码: 我对我的中的值进行了注释。属性,然后创建一个方法,我用bean实例化该方法以返回我的服务器地址字符串。 然后,我在HttpClientTest类中使用该字
我使用textutils.join连接一个字符串列表,但它返回null。我是在一个简单的单元测试中这样做的。 下面是有问题的代码:
我试图实现一个单元测试的在与。 我在关注这个链接,它运行良好,但结果为空,当我用浏览器测试我的websocket时,它会发送所需的结果。 让我展示一下我的测试课 } 这是我的< code > WebSocketConfiguration 类 } 这是我从服务器得到的响应 更新: 在下面的答案中添加建议的更改并经过进一步的研究后,我的测试类现在看起来像这样 } 经过这些更改后,我现在可以将堆栈跟踪打
我有一个用@service注释的类(HttpHandler)。我正在为这个服务类编写单元测试用例。我在测试类中使用@Autowired注释来获取服务的对象。但是,当我运行单元测试时,它返回NullPointerException。有人能帮帮我吗? 下面是服务类的代码:
共享Api实现类,添加preauthorize-admin,查看所有用户 这是我的JUnit测试,我发送get请求并返回403错误。
我还可以用 我得到一条消息,说测试通过了,但从未显示在屏幕上。为什么不呢?