Telerik Forums
JustMock Forum
0 answers
1 view

Hi,

I'm getting the following error for a blazor project using MSTest2 using JustMock flite.

Message: 
    Test method vx.test.TestsWeb.TestSystemSetup.All_12_Cards_are_found threw exception: 
    System.TypeInitializationException: The type initializer for 'Telerik.JustMock.Core.Context.MockingContext' threw an exception. ---> System.InvalidOperationException: Some attribute type among Xunit.FactAttribute, xunit.core,Xunit.TheoryAttribute, xunit.core not found.
  Stack Trace: 
    HierarchicalTestFrameworkContextResolver.CreateAttributeMatcher(String[] attributeTypeNames)
    HierarchicalTestFrameworkContextResolver.AddRepositoryOperations(String[] attributeTypeNames, Func`2 getKey, Func`3 isInheritingContext, Boolean isLeaf, Boolean isUsedOnAllThreads)
    HierarchicalTestFrameworkContextResolver.SetupStandardHierarchicalTestStructure(String[] testMethodAttrs, String[] testSetupAttrs, String[] fixtureSetupAttrs, String[] assemblySetupAttrs, FixtureConstuctorSemantics fixtureConstructorSemantics)
    XUnit2xMockingContextResolver.ctor()
    MockingContext.cctor()
    --- End of inner exception stack trace ---
    MockingContext.get_CurrentRepository()
    <>c__38`1.<Create>b__38_0()
    ProfilerInterceptor.GuardInternal[T](Func`1 guardedAction)
    Mock.Create[T]()
    TestSystemSetup.All_12_Cards_are_found() line 25

 

From the following code:

    [TestClass]
    public class TestSystemSetup : Bunit.TestContext
    {
        [TestMethod]
        public void All_12_Cards_are_found()
        {
            // Syncfusion setup
            JSInterop.Mode = JSRuntimeMode.Loose;
            Services.AddSyncfusionBlazor();

            // Arrange
            IApplicationConfigurationSingleton ApplicationConfigurationSingletonMockObj = Mock.Create<IApplicationConfigurationSingleton>();
            Mock.Arrange(() => ApplicationConfigurationSingletonMockObj.Branding_Button_Background_Color).Returns("0xffff");
            Mock.Arrange(() => ApplicationConfigurationSingletonMockObj.Branding_Button_Border_Color).Returns("0xffff");
            Mock.Arrange(() => ApplicationConfigurationSingletonMockObj.Branding_Button_Color).Returns("0xffff");
            Mock.Arrange(() => ApplicationConfigurationSingletonMockObj.IsLicenceExpired).Returns(false);
            Mock.Arrange(() => ApplicationConfigurationSingletonMockObj.DaysValidity).Returns(10);
            Services.AddSingleton<IApplicationConfigurationSingleton>(ApplicationConfigurationSingletonMockObj);

            ISystemSetupRepository SystemSetupRepositoryMockObj = Mock.Create<ISystemSetupRepository>();
            Mock.Arrange(() => SystemSetupRepositoryMockObj.GetMenuSummary()).Returns(Task.FromResult(GetSummary_DataSet()));
            Services.AddSingleton<ISystemSetupRepository>(SystemSetupRepositoryMockObj);

            // Act
            IRenderedComponent<SystemSetup> cut = RenderComponent<SystemSetup>();

            // Assert all 12 cards are found
            cut.Find("#Software_licence");
            cut.Find("#Audit_Log");
            cut.Find("#Snapshots");
            cut.Find("#User_Authentication");
            cut.Find("#Source_Of_User_Information");
            cut.Find("#Application_Parameters");
            cut.Find("#Attachments");
            cut.Find("#Data_Export_Profiles");
            cut.Find("#Email_Settings");
            cut.Find("#Custom_Help");
            cut.Find("#Splunk_Settings");
            cut.Find("#ServiceNow_Settings");
        }

}

 

A bit puzzled as to why the error references xunit.

 

michael
Top achievements
Rank 1
 asked on 20 Oct 2021
1 answer
2 views

Hi,

I am trying to run to  Dotnet Test command for .NetCore dll in Azure Devops and It throws exception for some tests saying elevated Mocking Exception.

 

Comand Used is

taskDotNetCoreCLI@2
  displayNamedotnet test - Unit Tests
  inputs:
    commandtest
    projects'**/*.UnitTest.csproj'
    arguments--no-build --configuration $(BuildConfiguration) --logger trx --collect "Code coverage" /p:CollectCoverage=true /p:Threshold=0 /p:ThresholdType=line /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/Coverage /p:ExcludeByAttribute="DebuggerNonUserCodeAttribute" /p:ExcludeByFile=\"**/obj/**/*.cs"
    testRunTitleUnit Tests
Ivo
Telerik team
 answered on 19 Oct 2021
1 answer
6 views

Hi, 

Please let me know on how do we mock  a private constructor.

Example:

public class Test
    {
        private Test(int iNum)
        {
            Number = iNum;
        }
        private int Number;
    }
Ivo
Telerik team
 answered on 12 Oct 2021
1 answer
15 views

 public class Sum
    {
        public int GetSum()
        {
            return SumBy2.Add1(10,5);
        }


        public int GetSum2()
        {
            SumBy1 by1 = new SumBy1();
            return by1.Add(10, 5);
        }


        private class SumBy1
        {
            public int Add(int a, int b)
            {
                return a + b;
            }
        }

        private static class SumBy2
        {
            public static int Add1(int a, int b)
            {
                return a + b;
            }
        }
    }

 

Need to create Unit tests for Sum class.

Ivo
Telerik team
 answered on 05 Oct 2021
1 answer
13 views

I added C# JustMock Test Project (.NET Framework) to my solution. The resulting project has five references Microsoft.VisualStudio.TestPlatform.TestFramework, Microsoft.VisualStudio.TestPlatform.TestFrameworkExtensions, System, System.Core and Telerik.JustMock. All of the references had the yellow alert icon next to them. Looking at the properties, none showed a Path.

I was surprised to see System.Core as a reference, since I selected the .NET Framework project. To verify, I removed that project and added a new Test Project, verifying I selected the .NET Framework. Same results.

As a test, I added a VB.NET JustMock Test Project (.NET Framework). It had two erroring references – the Microsoft TestPlatforms. Using NuGet Package Manager, I updated them both from 1.4.0 to 2.2.7. That eliminated the error.

I used NuGet to update the same two references in my C# project, but they still show errors. I also tried removing the reference to Telerik.JustMock.dll and re-adding it by browsing to the file. Still shows error.

Finally, my VB.NET project builds, but my C# build errors with this message: “This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ..\packages\MSTest.TestAdapter.1.3.2\build”. Doing the package restore does not resolve this message.

Any thoughts as to how I can resolve this? Thanks in advance.

Steve.

Mihail
Telerik team
 answered on 20 Sep 2021
1 answer
32 views

Hi,

I'm trying to create a pipeline on Azure for test/coverage using JustMock, my application is Core 5.0*

After a long journey to make the build work, now I'm encountering an issue with the test (JustMockVSTestV2)


steps:
- task: vs-publisher-443.jm-vstest-2.JustMockVSTest-2.JustMockVSTest@2
  displayName: 'VsTest - testAssemblies'
  inputs:
    testAssemblyVer2: |
     **\bin\**\*test*.dll
     !**\*TestAdapter.dll
     !**\*TestPlatform*
     !**\obj\**
     !**\bin\**\ref\**

    pathTo64BitJustMockProfiler: '[correctpath]\bin\Release\net5.0\runtimes\win-x64\native\Telerik.CodeWeaver.Profiler.dll'
    pathTo32BitJustMockProfiler: '[correctpath]\bin\Release\net5.0\runtimes\win-x86\native\Telerik.CodeWeaver.Profiler.dll'
    vsTestVersion: toolsInstaller
    runTestsInIsolation: true
    codeCoverageEnabled: true
    otherConsoleOptions: '/Framework:.NETCoreApp,Version=v5.0.401 /Enablecodecoverage /logger:trx'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'

 

My Test functions requires elevation:


Mock.SetupStatic(typeof(AStaticClass));

var response = Mock.Create<IRestResponse<string>>(); //this is restsharp
            Mock.Arrange(() => response.Data)
                .Returns("SomeData");

var client = Mock.Create<RestClient>(Constructor.Mocked);
            Mock.Arrange(() => client.ExecuteAsync<string>(Arg.IsAny<IRestRequest>(), Arg.IsAny<CancellationToken>()))
                .IgnoreInstance()
                .TaskResult(response);

 

My test project works fine on my local machine when I enable JustMock profile, however I get a bunch of errors on Azure pipeline:


##[error][xUnit.net 00:00:03.76]     ProjectTests.GetAsync_StateUnderTest_ExpectedBehavior [FAIL]
[xUnit.net 00:00:03.76]       System.InvalidProgramException : Common Language Runtime detected an invalid program.
[xUnit.net 00:00:03.76]       Stack Trace:
[xUnit.net 00:00:03.79]            at ProjectTests.GetAsync_StateUnderTest_ExpectedBehavior()
[xUnit.net 00:00:03.79]            at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
[xUnit.net 00:00:03.79]            at ProjectTests.GetAsync_StateUnderTest_ExpectedBehavior()

ALSO

##[error]Testhost process exited with error: Cannot use file stream for [PATH\bin\Release\net5.0\testhost.deps.json]: No such file or directory
##[error]A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\hostedtoolcache\windows\dotnet'.
##[error]Failed to run as a self-contained app.
##[error]  - The application was run as a self-contained app because 'PATH\bin\Release\net5.0\testhost.runtimeconfig.json' was not found.
##[error]  - If this should be a framework-dependent app, add the 'PATH\bin\Release\net5.0\testhost.runtimeconfig.json' file and specify the appropriate framework.
##[error]. Please check the diagnostic logs for more information.

 

Please advice, I'm not able to make JustMock to work with Azure Pipeline.

 

Thanks

Ivo
Telerik team
 answered on 17 Sep 2021
1 answer
14 views

Hi,

we have a class like this.

 

public class MssqlDbConnection : ISecuredDatabaseConnection, IDisposable
    {
        #region Fields
        private SqlConnection _connection = null;

     }

 

And I am creating Private Mock like this

             SqlConnection Sql = new SqlConnection();
            // Connected Mock
            Mock.NonPublic.Arrange<SqlConnection>(typeof(MssqlDbConnection), "_connection").Returns(Sql);

This Statement causes crash with System.MissingMemberException in just mock

 

Please let me know on this.

 

Regards,

Chandra.

Ivo
Telerik team
 answered on 17 Sep 2021
2 answers
11 views

Error when trying to mock Microsoft.ServiceFabric.Services.Client with the following code:


using Microsoft.ServiceFabric.Services.Client;

[Fact]

public void Foo() {

var spr = Mock.Create<ServicePartitionResolver>();

}

When I run this simple test I got:


Message: 
System.TypeLoadException : Could not load type 'System.Runtime.Remoting.Proxies.RealProxy' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

  Stack Trace: 
MocksRepository.Create(Type type, MockCreationSettings settings)
<>c__38`1.<Create>b__38_0()
ProfilerInterceptor.GuardInternal[T](Func`1 guardedAction)
Mock.Create[T]()

 

NovoPath
Top achievements
Rank 1
Iron
 answered on 15 Sep 2021
1 answer
18 views
I have a parent report with 
inline CSV1 
Descr Value
Verified 1
Not-Verified 0

inline CSV2
Descr value
ChartView 0
GridView 1

Report Parameters
Id supplied to report
Verified visible selected from inline CSV1
View visible selected from inline CSV2
Months visible multi-selected from Distinct list of 'FormattedDate' in 'dsMain'
Statuses visible multi-selected from Distinct list of 'Status' in 'dsMain'


I have a stored proc taking params 'Id' and 'Verified' from parent report to populate 'dsMain' datasource.
Stored proc to be called only when 'Id' or 'Verified' change and returning data including.... 
Id
Verified
Date(01-mm-yyyy) 
FormattedDate(MMM yy)
Status (S1,S2,S3,S4,S5)
DataItem1
DataItem2
DataItem3
DataItem4
DataItem5.... etc

I have a sub-report 'Chart' displaying a clustered vertical barchart
'Chart' sub-report is only visible if 'View' parameter of parent report is value of ChartView(0)
'Chart' sub-report to use 'dsMain' from parent report and filtering on 'Months' and 'Statuses' and sorting by 'Date'
'Chart' is grouped on 'FormattedDate' and each series is derived for each value in 'Status', value is Count('Status')

I have a sub-report 'Grid' displaying a datagrid
'Grid' sub-report is only visible if 'View' parameter of parent report is value of GridView(1)
'Grid' sub-report to use 'dsMain' from parent report and filtering on 'Months' and 'Statuses' and sorting by 'Date'

I cannot work out how to access the data source 'dsMain' from the sub-reports.
I cannot work out how to stop the stored proc from being called whenever 'View', 'Months' or 'Status' gets changed by the user.
The key issue here is the cost of running the Stored Proc when it has all the necessary data to filter and populate the controls on either of the sub reports.
The only time the data source should be refreshed is if the 'Id' or 'Verified' parameters of the parent report is changed.
Neli
Telerik team
 answered on 13 Aug 2021
1 answer
47 views

Hi Team

We tried executing justMock test cases in command prompt using justMock Console (licensed), dotCover and xUnit, but justMock Test execution failed and gave the error "System.InvalidProgramException : Common Language Runtime detected an invalid program." 

The command we use to execute is as follows:

start /wait "" "{PATH}\JustMock\Libraries\Telerik.JustMock.Configuration.exe" /link "dotCover"

"{PATH}\JustMock\Libraries\Telerik.JustMock.Console.exe" runadvanced --profiler-path-64 "{PATH}\JustMock\Libraries\CodeWeaver\64\Telerik.CodeWeaver.Profiler.dll" --command "{PATH}\JetBrains.dotCover.CommandLineTools.2021.1.3\dotCover.exe" --command-args "cover --reporttype=html --output=CodeCoverage\\index.html --targetexecutable=\"{PATH}\xunit.runner.console.2.4.1\tools\net472\xunit.console.exe\" -- \"{PATH}\{PATH_OF_JUSTMOCK_TEST_DLL}\""

start /wait "" "{PATH}\JustMock\Libraries\Telerik.JustMock.Configuration.exe" /unlink "dotCover"

 

Attaching the log and test code.

Narrow your results
Selected tags
Tags
+? more
Top users last month
JG
Top achievements
Rank 2
Iron
ixen
Top achievements
Rank 1
Iron
Iron
Iron
Matthias
Top achievements
Rank 5
Bronze
Bronze
Iron
Jana
Top achievements
Rank 2
Iron
Iron
Iron
Roland
Top achievements
Rank 1
Veteran
Iron
Top users last month
JG
Top achievements
Rank 2
Iron
ixen
Top achievements
Rank 1
Iron
Iron
Iron
Matthias
Top achievements
Rank 5
Bronze
Bronze
Iron
Jana
Top achievements
Rank 2
Iron
Iron
Iron
Roland
Top achievements
Rank 1
Veteran
Iron