GVKun编程网logo

如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?(jmeter如何模拟session)

29

本文的目的是介绍如何使用Jasmine模拟Angular的“LocationChangeListener”接口?的详细情况,特别关注jmeter如何模拟session的相关信息。我们将通过专业的研究、

本文的目的是介绍如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?的详细情况,特别关注jmeter如何模拟session的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?的机会,同时也不会遗漏关于$ locationChangeSuccess和$ locationChangeStart有什么区别?、Android RatingBar onRatingChanged Listener、android – IllegalStateException(“你不能设置Dialog的OnCancelListener或OnDismissListener”)、Android – OnPreferenceChangeListener和OnSharedPreferenceChangeListener之间有什么不同的知识。

本文目录一览:

如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?(jmeter如何模拟session)

如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?(jmeter如何模拟session)

如何解决如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口??

我在尝试使用 Jasmine 模拟 Angular 的 Locationchangelistener 接口时遇到了麻烦。

这是我的代码所做的:

      onPopState(fn: Locationchangelistener): void {
        this.platformlocation.onPopState((ev: LocationChangeEvent): void => {
    
        ... here I do the stuff I actually want to test ...
    
      }
    }

所以基本上,我尝试使用 LocatioNchangelistener 调用 onPopState,这样我就可以测试函数内部的所有逻辑。 我已经嘲笑了 LocationChangeEvent

      const locationChangeEventMock: LocationChangeEvent = {
        type: ''typemock'',state: 1,};

但是我所有模拟 Locationchangelistener 的努力都是徒劳的...这真的可能吗?由于 TypeScript 的接口“问题”?

编辑:经过一些调试,看起来 ev: LocationChangeEvent 不是来自 Locationchangelistener(显然),所以我需要,不知何故,触发LocationChangeEvent

到现在为止,我对它进行了一些代码重构:将我想要的代码提取到一个方法中,然后调用该方法......但仍然好奇如何测试它。

解决方法

可能,您可以像这样传递一个空的 cb 函数作为模拟:

updateData(form: IOpportunitySearch){
  ...
  this.storeService.onSetAllOpportunitiesSearch(form);  //this sets the store with the user''s selected properties
  this.dataService.searchOpportunities(form).subscribe(data => {

它应该是有效的。

$ locationChangeSuccess和$ locationChangeStart有什么区别?

$ locationChangeSuccess和$ locationChangeStart有什么区别?

$locationChangeSuccess和之间有什么区别$locationChangeStart

它们都是与相关的未记录事件window.location

Android RatingBar onRatingChanged Listener

Android RatingBar onRatingChanged Listener

我在我的应用程序中使用了ratingBar元素,并尝试使用OnratingChangedListener进行设置.在监听器中,我使用变量上的if语句来做不同的事情.问题是,出于某种原因,当我有多个选项时,这个监听器无法正常工作.它是在onCreate()方法中设置的,在if语句中的变量获取值之前,但我试图将它移动到其他位置而根本没有成功.

我的onCreate():

bar = (ratingBar) findViewById(R.id.serviceLevel);
    bar.setonratingBarchangelistener(new OnratingBarchangelistener() {

        @Override
        public void onratingChanged(ratingBar ratingBar, float rating,
                boolean fromUser) {

        if(Code==null){
            Toast.makeText(TipCalculatorActivity.this, "Locationing error occured, please report to the developer.", Toast.LENGTH_LONG).show();
        }else if(Code=="1"){
            if(rating==0){
                autochange.setText("Precentage: 0%");
                precentage = 0;
                calculate(value, precentage);
            }else if(rating==0.5){
                autochange.setText("Precentage: 10%");
                precentage = 8;
                calculate(value, precentage);
            }else if(rating==1){
                autochange.setText("Precentage: 11%");
                precentage = 9;
                calculate(value, precentage);
            }else if(rating==1.5){
                autochange.setText("Precentage: 11%");
                precentage = 10;
                calculate(value, precentage);
            }else if(rating==2){
                autochange.setText("Precentage: 12%");
                precentage = 11;
                calculate(value, precentage);
            }else if(rating==2.5){
                autochange.setText("Precentage: 12%");
                precentage = 12;
                calculate(value, precentage);
            }else if(rating==3){
                autochange.setText("Precentage: 13%");
                precentage = 13;
                calculate(value, precentage);
            }else if(rating==3.5){
                autochange.setText("Precentage: 13%");
                precentage = 14;
                calculate(value, precentage);
            }else if(rating==4){
                autochange.setText("Precentage: 14%");
                precentage = 15;
                calculate(value, precentage);
            }else if(rating==4.5){
                autochange.setText("Precentage: 14%");
                precentage = 16;
                calculate(value, precentage);
            }else if(rating==5){
                autochange.setText("Precentage: 15%");
                precentage = 17;
                calculate(value, precentage);
            }
        }else if(Code=="2"){
            if(rating==0){
                autochange.setText("Precentage: 0%");
                precentage = 0;
                calculate(value, precentage);
            }else if(rating==0.5){
                autochange.setText("Precentage: 10%");
                precentage = 10;
                calculate(value, precentage);
            }else if(rating==1){
                autochange.setText("Precentage: 11%");
                precentage = 11;
                calculate(value, precentage);
            }else if(rating==1.5){
                autochange.setText("Precentage: 12%");
                precentage = 12;
                calculate(value, precentage);
            }else if(rating==2){
                autochange.setText("Precentage: 13%");
                precentage = 13;
                calculate(value, precentage);
            }else if(rating==2.5){
                autochange.setText("Precentage: 14%");
                precentage = 14;
                calculate(value, precentage);
            }else if(rating==3){
                autochange.setText("Precentage: 15%");
                precentage = 15;
                calculate(value, precentage);
            }else if(rating==3.5){
                autochange.setText("Precentage: 16%");
                precentage = 16;
                calculate(value, precentage);
            }else if(rating==4){
                autochange.setText("Precentage: 17%");
                precentage = 17;
                calculate(value, precentage);
            }else if(rating==4.5){
                autochange.setText("Precentage: 18%");
                precentage = 18;
                calculate(value, precentage);
            }else if(rating==5){
                autochange.setText("Precentage: 19%");
                precentage = 19;
                calculate(value, precentage);
            }
        }
    }
});

我的代码变量在AsyncTask完成后设置,因此可能在生成UI之后.有解决方案吗

解决方法:

为了使您的代码工作,您必须使用equals()方法来检查Code是否具有正确的值:

// ...
} else if (Code.equals("1")){
// ...

==将测试引用并返回false,因为两个引用不指向同一个对象.

android – IllegalStateException(“你不能设置Dialog的OnCancelListener或OnDismissListener”)

android – IllegalStateException(“你不能设置Dialog的OnCancelListener或OnDismissListener”)

这个DialogFragment实现导致了

IllegalStateException( “You can not set Dialog’s OnCancelListener or
OndismissListener”)

.为什么?解?

@H_301_15@public class OkCThreadDialog1 extends DialogFragment{

DialogInterface.OnCancelListener onCancelListener;

public OkCThreadDialog1(){
}

public static OkCThreadDialog1 newInstance(String title, String message) {
    OkCThreadDialog1 frag = new OkCThreadDialog1();
    Bundle args = new Bundle();
    args.putString("title", title);
    args.putString("message", message);
    frag.setArguments(args);
    return frag;
}


public Dialog onCreateDialog(Bundle savedInstanceState){

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());


    builder .setTitle(getArguments().getString("title"))
            .setMessage(getArguments().getString("message"))
            .setonCancelListener(onCancelListener)
            .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                }})
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    getDialog().cancel();
                }});

    return builder.create();
}

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    // Verify that the host activity implements the callback interface
    try {
        onCancelListener = (DialogInterface.OnCancelListener) activity;
    } catch (ClassCastException e) {
        // The activity doesn't implement the interface, throw exception
        throw new ClassCastException(activity.toString()
                + " must implement OkCancelDialogListener");
    }
}
}

我的Activity实现了DialogInterface.OnCancelListener,如下所示:

@H_301_15@public class MainActivity extends Activity implements OkCancelDialogListener{

static final String TAG ="MainActivity";

@Override
public void onCancel(DialogInterface dialog) {


}
}

从builder.create();抛出Exeception.怎么了?

解决方法:

来自Android文档:

public Dialog onCreateDialog (Bundle savedInstanceState)

Override to build your own custom Dialog container. This is
typically used to show an AlertDialog instead of a generic Dialog;
when doing so, onCreateView(LayoutInflater, ViewGroup, Bundle) does
not need to be implemented since the AlertDialog takes care of its own
content.

This method will be called after onCreate(Bundle) and before
onCreateView(LayoutInflater, ViewGroup, Bundle). The default
implementation simply instantiates and returns a Dialog class.

Note: DialogFragment own the Dialog.setonCancelListener and Dialog.setondismissListener callbacks. You must not set them yourself.

To find out about these events, override onCancel(DialogInterface) and
ondismiss(DialogInterface).

所以基本上,你必须覆盖ondismiss或OnCancel而不是’.setonCancelListener(onCancelListener)’.

Android – OnPreferenceChangeListener和OnSharedPreferenceChangeListener之间有什么不同

Android – OnPreferenceChangeListener和OnSharedPreferenceChangeListener之间有什么不同

我想获得一个checkBoxpreference的值.哪种方法适合倾听偏好?

OnPreferencechangelistener和OnSharedPreferencechangelistener之间有什么区别?

UPDATE
为什么onSharedPreferenceChanged没有被调用?

public class Setting extends PreferenceActivity implements
        OnSharedPreferencechangelistener //,OnPreferencechangelistener
{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromresource(R.xml.preferences);// deprecated warning
    }

    @Override
    public void onSharedPreferenceChanged(
            SharedPreferences sharedPreferences,String key) {// DO Stuff
    }

    @Override
    protected void onResume() {
        super.onResume();
        // getPreferenceScreen().getSharedPreferences().registerOnSharedPreferencechangelistener(this);
        // PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferencechangelistener(this);
        this.getSharedPreferences("myPrefdb",MODE_PRIVATE)
                .registerOnSharedPreferencechangelistener(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        // getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferencechangelistener(this);
        // PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferencechangelistener(this);
        this.getSharedPreferences("myPrefdb",MODE_PRIVATE)
                .unregisterOnSharedPreferencechangelistener(this);
    }
}

解决方法

这两个之间的区别在于OnPreferencechangelistener是仅当其首选项更改(仅适用于单个密钥)时调用的回调),而OnSharedPreferenceChange是在该SharedPreferences对象中的任何首选项更改(仅适用于所有键)时调用的回调.

所以,在你的情况下,你需要使用OnPreferencechangelistener与你的CheckBoxPreference.

这是一个例子:

Preference ckBoxPref = this.findPreference(CKBox_PREF_KEY);
ckBoxPref.setonPreferencechangelistener(new OnPreferencechangelistener() {

    @Override
    public boolean onPreferenceChange(Preference preference,Object newValue) {
        //Do stuff
    }
});

如果您使用片段,findPreference方法不起作用,但是您没有使用任何内容,所以没有问题.

今天的关于如何使用 Jasmine 模拟 Angular 的“LocationChangeListener”接口?jmeter如何模拟session的分享已经结束,谢谢您的关注,如果想了解更多关于$ locationChangeSuccess和$ locationChangeStart有什么区别?、Android RatingBar onRatingChanged Listener、android – IllegalStateException(“你不能设置Dialog的OnCancelListener或OnDismissListener”)、Android – OnPreferenceChangeListener和OnSharedPreferenceChangeListener之间有什么不同的相关知识,请在本站进行查询。

本文标签: